diff options
author | Anthony Ramine <[email protected]> | 2013-06-06 22:25:07 +0200 |
---|---|---|
committer | Fredrik Gustafsson <[email protected]> | 2013-06-07 10:45:41 +0200 |
commit | 29c2de1044d25c5ae641797e527ca72df8495355 (patch) | |
tree | c9f85082d44aece3f821369a969d6c88f1777e2f /lib/compiler/test/warnings_SUITE.erl | |
parent | b1da47eff2e41013d60dacebbdfa31ce60357d23 (diff) | |
download | otp-29c2de1044d25c5ae641797e527ca72df8495355.tar.gz otp-29c2de1044d25c5ae641797e527ca72df8495355.tar.bz2 otp-29c2de1044d25c5ae641797e527ca72df8495355.zip |
Silence a misleading warning with some comprehensions
When compiling comprehensions with generators which are foldable to
'true', a misleading warning is emitted by sys_core_fold because a
clause resulting from the compilation of the comprehension to Core
Erlang is not marked as generated by the compiler.
An example of such a comprehension is [ true || true ].
Diffstat (limited to 'lib/compiler/test/warnings_SUITE.erl')
-rw-r--r-- | lib/compiler/test/warnings_SUITE.erl | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/compiler/test/warnings_SUITE.erl b/lib/compiler/test/warnings_SUITE.erl index f00bfe663b..810b2b48c9 100644 --- a/lib/compiler/test/warnings_SUITE.erl +++ b/lib/compiler/test/warnings_SUITE.erl @@ -37,7 +37,7 @@ -export([pattern/1,pattern2/1,pattern3/1,pattern4/1, guard/1,bad_arith/1,bool_cases/1,bad_apply/1, - files/1,effect/1,bin_opt_info/1,bin_construction/1]). + files/1,effect/1,bin_opt_info/1,bin_construction/1, comprehensions/1]). % Default timetrap timeout (set in init_per_testcase). -define(default_timeout, ?t:minutes(2)). @@ -61,7 +61,7 @@ groups() -> [{p,test_lib:parallel(), [pattern,pattern2,pattern3,pattern4,guard, bad_arith,bool_cases,bad_apply,files,effect, - bin_opt_info,bin_construction]}]. + bin_opt_info,bin_construction,comprehensions]}]. init_per_suite(Config) -> Config. @@ -536,6 +536,16 @@ bin_construction(Config) when is_list(Config) -> ok. +comprehensions(Config) when is_list(Config) -> + Ts = [{tautologic_guards, + <<" + f() -> [ true || true ]. + g() -> << <<1>> || true >>. + ">>, + [], []}], + run(Config, Ts), + ok. + %%% %%% End of test cases. %%% |