summaryrefslogtreecommitdiff
path: root/lib/compiler/test/compile_SUITE_data/bigE.erl
blob: 598b8fc965cb0db92fa9b12c5c9be927fe399e22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-module(bigE).

-export([f/1]).

-record(r, {a, b}).

f(#r{b = B} = C) ->
    receive
	B ->
	    X = C#r.a,
            %% The compiler will do a case to extract the `a` field
            %% using a pattern variable named `rec0`. Without
            %% legalization the variable will be output as an atom and
            %% the compiler will report an error as the following `X +
            %% X` will always fail.
	    REC0 = X + X,
            %% If the legalization fails to detect that the default
            %% legalization of uppercasing the pattern variable would
            %% collide with the `REC0` below, we will get a warning
            %% for an unsafe use.
	    REC0
    end.