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
33
34
35
36
37
38
|
-module(other).
-ifdef(VERSION_1).
-define(VERSION,1).
-export([exp1/0]).
-export([exp1loc2/0]).
-export([exp1exp2/0]).
exp1() -> check([loc1(),exp1loc2(),exp1exp2(),loc1exp2(),loc1loc2()]).
loc1() -> check([exp1loc2(),exp1exp2(),loc1exp2(),loc1loc2()]).
exp1loc2() -> check([exp1exp2(),loc1exp2(),loc1loc2()]).
exp1exp2() -> check([loc1exp2(),loc1loc2()]).
loc1exp2() -> check([loc1loc2()]).
-endif. % VERSION_1
-ifdef(VERSION_2).
-define(VERSION,2).
-export([exp2/0]).
-export([loc1exp2/0]).
-export([exp1exp2/0]).
loc1exp2() -> check([exp1exp2(),exp1loc2(),loc2(),exp2(),loc1loc2()]).
exp1exp2() -> check([exp1loc2(),loc2(),exp2(),loc1loc2()]).
exp1loc2() -> check([loc2(),exp2(),loc1loc2()]).
loc2() -> check([exp2(),loc1loc2()]).
exp2() -> check([loc1loc2()]).
-endif. % VERSION_2
loc1loc2() -> ?VERSION.
check(VerList) ->
case lists:all(fun(?VERSION) -> true; (_) -> false end,
VerList) of
true ->
?VERSION;
false ->
VerList
end.
|