aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/test/opt_verify_SUITE_data/call_elim_test_branches_opt_poss.erl
blob: c8ddfa1e7522df786c880ea175e591b3157f12e9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
-module(call_elim_test_branches_opt_poss).

-export([test/1]).

test(A) ->
    if A > 0 ->
	    true = has_a_field(#{a=>true}),
	    true = has_a_field(#{b=>1, a=>"2"}),
	    true = has_a_field(#{a=>5, c=>4}),
	    true = has_tuple_field(#{{ab, 1}=><<"qq">>, 1      =>0}),
	    true = has_tuple_field(#{up     =>down,     {ab, 1}=>[]}),
	    true = has_tuple_field(#{{ab, 1}=>42});
       A =< 0 ->
	    true = has_a_field(#{a=>q,     'A'  =>nej}),
	    true = has_a_field(#{a=>"hej", false=>true}),
	    true = has_a_field(#{a=>3}),
	    true = has_tuple_field(#{{ab, 1}=>q,     'A'  =>nej}),
	    true = has_tuple_field(#{{ab, 1}=>"hej", false=>true}),
	    true = has_tuple_field(#{{ab, 1}=>3})
    end,
    true = has_nil_field(#{[]         =>3,  b =>"seven"}),
    true = has_nil_field(#{"seventeen"=>17, []=>nil}),
    ok.

has_tuple_field(#{{ab, 1}:=_}) -> true;
has_tuple_field(#{}) -> false.

has_a_field(#{a:=_}) -> true;
has_a_field(#{}) -> false.

has_nil_field(#{[]:=_}) -> true;
has_nil_field(#{}) -> false.