From 6f990318a43bfeda392b9bc146c7b1ac757ca644 Mon Sep 17 00:00:00 2001 From: Stavros Aronis Date: Fri, 16 Nov 2012 18:33:45 +0100 Subject: Fix precision of record creation violation warnings Before patch Dialyzer was reporting all the fields that were not subtypes of the declared ones as incorrect. The correct violations are for the fields whose intersection with the declared ones is empty. --- lib/hipe/cerl/erl_types.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/hipe/cerl/erl_types.erl') diff --git a/lib/hipe/cerl/erl_types.erl b/lib/hipe/cerl/erl_types.erl index bc7ea17077..f5be8fb08f 100644 --- a/lib/hipe/cerl/erl_types.erl +++ b/lib/hipe/cerl/erl_types.erl @@ -3432,7 +3432,7 @@ record_field_diffs_to_string(?tuple([_|Fs], Arity, Tag), RecDict) -> field_diffs([F|Fs], [{FName, DefType}|FDefs], RecDict, Acc) -> NewAcc = - case t_is_subtype(F, DefType) of + case not t_is_none(t_inf(F, DefType)) of true -> Acc; false -> Str = atom_to_string(FName) ++ "::" ++ t_to_string(DefType, RecDict), -- cgit v1.2.3