diff options
author | Hans Bolinder <[email protected]> | 2015-12-09 15:05:40 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2015-12-15 08:55:07 +0100 |
commit | ce1cffd6f8812fa6216d9d71afaca20e789b7beb (patch) | |
tree | 7b88bb1a63bb087a50cf1a1569b18ca91234807b /lib/dialyzer/src | |
parent | 2af883c62efe6bae1bf9013783f43a5b9848c237 (diff) | |
download | otp-ce1cffd6f8812fa6216d9d71afaca20e789b7beb.tar.gz otp-ce1cffd6f8812fa6216d9d71afaca20e789b7beb.tar.bz2 otp-ce1cffd6f8812fa6216d9d71afaca20e789b7beb.zip |
dialyzer: Print constraints using the '::' syntax
Diffstat (limited to 'lib/dialyzer/src')
-rw-r--r-- | lib/dialyzer/src/dialyzer_contracts.erl | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/dialyzer/src/dialyzer_contracts.erl b/lib/dialyzer/src/dialyzer_contracts.erl index 7251de8b10..83b3ef72f2 100644 --- a/lib/dialyzer/src/dialyzer_contracts.erl +++ b/lib/dialyzer/src/dialyzer_contracts.erl @@ -126,13 +126,19 @@ butlast([H|T]) -> [H|butlast(T)]. constraints_to_string([]) -> ""; -constraints_to_string([{type, _, constraint, [{atom, _, What}, Types]}]) -> - atom_to_list(What) ++ "(" ++ - sequence([erl_types:t_form_to_string(T) || T <- Types], ",") ++ ")"; constraints_to_string([{type, _, constraint, [{atom, _, What}, Types]}|Rest]) -> - atom_to_list(What) ++ "(" ++ - sequence([erl_types:t_form_to_string(T) || T <- Types], ",") - ++ "), " ++ constraints_to_string(Rest). + S = constraint_to_string(What, Types), + case Rest of + [] -> S; + _ -> S ++ ", " ++ constraints_to_string(Rest) + end. + +constraint_to_string(is_subtype, [{var, _, Var}, T]) -> + atom_to_list(Var) ++ " :: " ++ erl_types:t_form_to_string(T); +constraint_to_string(What, Types) -> + atom_to_list(What) ++ "(" + ++ sequence([erl_types:t_form_to_string(T) || T <- Types], ",") + ++ ")". sequence([], _Delimiter) -> ""; sequence([H], _Delimiter) -> H; |