aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/test
diff options
context:
space:
mode:
authorStavros Aronis <[email protected]>2012-03-01 10:59:34 +0100
committerStavros Aronis <[email protected]>2012-03-01 10:59:34 +0100
commit1f9f1f5f841853310889d3668141b807b744ece2 (patch)
tree80cc2f13a3ab1b53d74d6c4ef4c8973f4ff21a30 /lib/dialyzer/test
parent06d0fd439347d1364078314b187dd388c5800c62 (diff)
downloadotp-1f9f1f5f841853310889d3668141b807b744ece2.tar.gz
otp-1f9f1f5f841853310889d3668141b807b744ece2.tar.bz2
otp-1f9f1f5f841853310889d3668141b807b744ece2.zip
Fix bug in remote type solving
Diffstat (limited to 'lib/dialyzer/test')
-rw-r--r--lib/dialyzer/test/behaviour_SUITE_data/src/custom_sup.erl37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/dialyzer/test/behaviour_SUITE_data/src/custom_sup.erl b/lib/dialyzer/test/behaviour_SUITE_data/src/custom_sup.erl
new file mode 100644
index 0000000000..8ec84d798f
--- /dev/null
+++ b/lib/dialyzer/test/behaviour_SUITE_data/src/custom_sup.erl
@@ -0,0 +1,37 @@
+%%% Dialyzer was giving a warning with this input because of a bug in the
+%%% substitution of remote types in specs. Remote types in the first element of
+%%% a tuple would not update the tuple's tag set and we could end up with a
+%%% non-normalized representation.
+%%%
+%%% Reported by Damian DobroczyƄski on 29/02/2012
+
+-module(custom_sup).
+
+-behavior(supervisor).
+
+-export([init/1]).
+
+-spec init(atom()) ->
+ {ok, {{supervisor:strategy(), non_neg_integer(), non_neg_integer()},
+ [supervisor:child_spec()]}} | ignore.
+
+init(StorageName) ->
+ Strategy = {one_for_all, 100, 1},
+ %% get application-wide storage parameters
+ case application:get_env(storage) of
+ undefined ->
+ ignore;
+ {ok, Storage} ->
+ BackendId = proplists:get_value(backend, Storage),
+ BackendArgs = proplists:get_value(args, Storage),
+ if
+ (BackendId =:= undefined) orelse (BackendArgs =:= undefined) ->
+ ignore;
+ true ->
+ {ok, {Strategy,
+ [{id1, {a_module, start_link, []},
+ permanent, 5000, worker, [a_module]},
+ {id2, {another_module, start_link, []},
+ permanent, 5000, worker, [another_module]}]}}
+ end
+ end.