aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test
diff options
context:
space:
mode:
authorAnthony Ramine <[email protected]>2014-03-01 17:40:15 +0100
committerAnthony Ramine <[email protected]>2014-03-02 19:19:06 +0100
commit0b016da203177f93e3d5b52ea66d0824d7e5b662 (patch)
treecd53239daa989ea94300d06c430f96888cdc77ae /lib/compiler/test
parenta74e66a68f3b4ed590f928b4fd4f0808c6287a32 (diff)
downloadotp-0b016da203177f93e3d5b52ea66d0824d7e5b662.tar.gz
otp-0b016da203177f93e3d5b52ea66d0824d7e5b662.tar.bz2
otp-0b016da203177f93e3d5b52ea66d0824d7e5b662.zip
Do not mark all calls to erlang:is_record/3 as safe
Calls to erlang:is_record/3 where the second and third arguments are not respectively a literal atom and a literal integer can't be transformed to guards and thus are not safe. Reported-by: Ulf Norell
Diffstat (limited to 'lib/compiler/test')
-rw-r--r--lib/compiler/test/record_SUITE.erl8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/compiler/test/record_SUITE.erl b/lib/compiler/test/record_SUITE.erl
index c9f5a2053e..f736e14bf6 100644
--- a/lib/compiler/test/record_SUITE.erl
+++ b/lib/compiler/test/record_SUITE.erl
@@ -369,6 +369,14 @@ record_test_3(Config) when is_list(Config) ->
?line false = is_record(id(#barf{}), id(barf), id(42)),
?line false = is_record(id(#barf{}), id(foo), id(6)),
+ Rec = id(#barf{}),
+ Good = id(barf),
+ Bad = id(foo),
+ Size = id(6),
+
+ true = is_record(Rec, Good, Size) orelse error,
+ error = is_record(Rec, Bad, Size) orelse error,
+
ok.
record_access_in_guards(Config) when is_list(Config) ->