File: bigE.erl

package info (click to toggle)
erlang 1%3A27.3.4.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 225,000 kB
  • sloc: erlang: 1,658,966; ansic: 405,769; cpp: 177,850; xml: 82,435; makefile: 15,031; sh: 14,401; lisp: 9,812; java: 8,603; asm: 6,541; perl: 5,836; python: 5,484; sed: 72
file content (22 lines) | stat: -rw-r--r-- 694 bytes parent folder | download | duplicates (4)
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.