diff options
author | Björn Gustavsson <[email protected]> | 2019-04-09 06:37:55 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-04-09 06:46:31 +0200 |
commit | 23a497af427493b94739761e4d4974e12bc67579 (patch) | |
tree | d722974761354703cb9bb023d643bad44e0c7225 /lib/stdlib/test | |
parent | 45bb3d43fdba5b085fdd2f944277784ec18e60a8 (diff) | |
download | otp-23a497af427493b94739761e4d4974e12bc67579.tar.gz otp-23a497af427493b94739761e4d4974e12bc67579.tar.bz2 otp-23a497af427493b94739761e4d4974e12bc67579.zip |
Issue an error for improper use of record_info/2 in a fun
`record_info/2` is a pseudo-function that requires literal arguments
known at compile time. Therefore, the following usage is illegal:
f() -> fun record_info/2.
However, `erl_lint` did not issue a compilation error for this usage,
and the compiler would crash in a later pass.
https://bugs.erlang.org/browse/ERL-907
Diffstat (limited to 'lib/stdlib/test')
-rw-r--r-- | lib/stdlib/test/erl_lint_SUITE.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl index 939cc1024c..fe98a3796d 100644 --- a/lib/stdlib/test/erl_lint_SUITE.erl +++ b/lib/stdlib/test/erl_lint_SUITE.erl @@ -3576,10 +3576,12 @@ basic_errors(Config) -> {illegal_record_info, <<"f1() -> record_info(42, record). - f2() -> record_info(shoe_size, record).">>, + f2() -> record_info(shoe_size, record). + f3() -> fun record_info/2.">>, [], {errors,[{1,erl_lint,illegal_record_info}, - {2,erl_lint,illegal_record_info}],[]}}, + {2,erl_lint,illegal_record_info}, + {3,erl_lint,illegal_record_info}],[]}}, {illegal_expr, <<"f() -> a:b.">>, |