aboutsummaryrefslogtreecommitdiffstats
path: root/lib/typer
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2011-11-30 16:04:11 +0100
committerHenrik Nord <[email protected]>2011-11-30 16:04:15 +0100
commit0290bed50ccbba067619c5829b0a090a8a60a2ff (patch)
tree301de75ee89b085c962025a143b45719af9c68fd /lib/typer
parent08ea3af8528ad0920021ecc230a66eb5ee59bc86 (diff)
parent804f81747df38cbcb997a6e7aebe8d3868a31e3e (diff)
downloadotp-0290bed50ccbba067619c5829b0a090a8a60a2ff.tar.gz
otp-0290bed50ccbba067619c5829b0a090a8a60a2ff.tar.bz2
otp-0290bed50ccbba067619c5829b0a090a8a60a2ff.zip
Merge branch 'sa/dialyzer-fixes-r15'
* sa/dialyzer-fixes-r15: Update inets test results Add file/line info in a particular Dialyzer crash Fix Dialyzer's warnings in HiPE Fix Dialyzer's warning for its own code Fix crash in Typer No warnings for underspecs with remote types OTP-9758
Diffstat (limited to 'lib/typer')
-rw-r--r--lib/typer/src/typer.erl15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/typer/src/typer.erl b/lib/typer/src/typer.erl
index f2a70f49b7..fd39b55dd4 100644
--- a/lib/typer/src/typer.erl
+++ b/lib/typer/src/typer.erl
@@ -119,9 +119,9 @@ extract(#analysis{macros = Macros,
{ok, RecDict} ->
Mod = list_to_atom(filename:basename(File, ".erl")),
case dialyzer_utils:get_spec_info(Mod, AbstractCode, RecDict) of
- {ok, SpecDict} ->
+ {ok, SpecDict, CbDict} ->
CS1 = dialyzer_codeserver:store_temp_records(Mod, RecDict, CS),
- dialyzer_codeserver:store_temp_contracts(Mod, SpecDict, CS1);
+ dialyzer_codeserver:store_temp_contracts(Mod, SpecDict, CbDict, CS1);
{error, Reason} -> compile_error([Reason])
end;
{error, Reason} -> compile_error([Reason])
@@ -873,16 +873,16 @@ collect_one_file_info(File, Analysis) ->
Mod = cerl:concrete(cerl:module_name(Core)),
case dialyzer_utils:get_spec_info(Mod, AbstractCode, Records) of
{error, Reason} -> compile_error([Reason]);
- {ok, SpecInfo} ->
+ {ok, SpecInfo, CbInfo} ->
ExpTypes = get_exported_types_from_core(Core),
- analyze_core_tree(Core, Records, SpecInfo, ExpTypes,
- Analysis, File)
+ analyze_core_tree(Core, Records, SpecInfo, CbInfo,
+ ExpTypes, Analysis, File)
end
end
end
end.
-analyze_core_tree(Core, Records, SpecInfo, ExpTypes, Analysis, File) ->
+analyze_core_tree(Core, Records, SpecInfo, CbInfo, ExpTypes, Analysis, File) ->
Module = cerl:concrete(cerl:module_name(Core)),
TmpTree = cerl:from_records(Core),
CS1 = Analysis#analysis.codeserver,
@@ -894,7 +894,8 @@ analyze_core_tree(Core, Records, SpecInfo, ExpTypes, Analysis, File) ->
CS5 =
case Analysis#analysis.no_spec of
true -> CS4;
- false -> dialyzer_codeserver:store_temp_contracts(Module, SpecInfo, CS4)
+ false ->
+ dialyzer_codeserver:store_temp_contracts(Module, SpecInfo, CbInfo, CS4)
end,
OldExpTypes = dialyzer_codeserver:get_temp_exported_types(CS5),
MergedExpTypes = sets:union(ExpTypes, OldExpTypes),