diff options
Diffstat (limited to 'lib/stdlib/test/qlc_SUITE.erl')
| -rw-r--r-- | lib/stdlib/test/qlc_SUITE.erl | 24 | 
1 files changed, 20 insertions, 4 deletions
| diff --git a/lib/stdlib/test/qlc_SUITE.erl b/lib/stdlib/test/qlc_SUITE.erl index 2bd940020c..c08e138ad3 100644 --- a/lib/stdlib/test/qlc_SUITE.erl +++ b/lib/stdlib/test/qlc_SUITE.erl @@ -58,7 +58,7 @@  -export([   	  badarg/1, nested_qlc/1, unused_var/1, lc/1, fun_clauses/1,  	  filter_var/1, single/1, exported_var/1, generator_vars/1, -	  nomatch/1, errors/1, pattern/1,  +	  nomatch/1, errors/1, pattern/1, overridden_bif/1,  	  eval/1, cursor/1, fold/1, eval_unique/1, eval_cache/1, append/1,   	  evaluator/1, string_to_handle/1, table/1, process_dies/1,  @@ -126,7 +126,7 @@ groups() ->      [{parse_transform, [],        [badarg, nested_qlc, unused_var, lc, fun_clauses,         filter_var, single, exported_var, generator_vars, -       nomatch, errors, pattern]}, +       nomatch, errors, pattern, overridden_bif]},       {evaluation, [],        [eval, cursor, fold, eval_unique, eval_cache, append,         evaluator, string_to_handle, table, process_dies, sort, @@ -468,6 +468,23 @@ pattern(Config) when is_list(Config) ->                           -record(k, {t,v}).\n">>, Ts),      ok. +%% Override a guard BIF with an imported or local function. +overridden_bif(Config) -> +    Ts = [ +	  <<"[2] = qlc:e(qlc:q([P || P <- [1,2,3], port(P)])), +             [10] = qlc:e(qlc:q([P || P <- [0,9,10,11,12], +                                      (is_reference(P) andalso P > 5)])), +             Empty = gb_sets:empty(), Single = gb_sets:singleton(42), +             GbSets = [Empty,Single], +             [Single] = qlc:e(qlc:q([S || S <- GbSets, size(S) =/= 0])) +            ">> +	 ], +    run(Config, "-import(gb_sets, [size/1]). +                 -compile({no_auto_import, [size/1, is_reference/1]}). +                 port(N) -> N rem 2 =:= 0. +                 is_reference(N) -> N rem 10 =:= 0.\n", Ts), +    ok. +  %% eval/2  eval(Config) when is_list(Config) -> @@ -7919,7 +7936,6 @@ compile(Config, Tests, Fun) ->  compile_file(Config, Test0, Opts0) ->      {File, Mod} = compile_file_mod(Config),      Test = list_to_binary(["-module(", atom_to_list(Mod), "). " -                           "-compile(export_all). "                             "-import(qlc_SUITE, [i/1,i/2,format_info/2]). "                             "-import(qlc_SUITE, [etsc/2, etsc/3]). "                             "-import(qlc_SUITE, [create_ets/2]). " @@ -7929,7 +7945,7 @@ compile_file(Config, Test0, Opts0) ->                             "-import(qlc_SUITE, [lookup_keys/1]). "                             "-include_lib(\"stdlib/include/qlc.hrl\"). ",                             Test0]), -    Opts = [export_all,return,nowarn_unused_record,{outdir,?privdir}|Opts0], +    Opts = [export_all,nowarn_export_all,return,nowarn_unused_record,{outdir,?privdir}|Opts0],      ok = file:write_file(File, Test),      case compile:file(File, Opts) of          {ok, _M, Ws} -> warnings(File, Ws); | 
