diff options
author | Hans Bolinder <[email protected]> | 2015-04-24 14:45:35 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2015-06-15 12:27:40 +0200 |
commit | dc844097e0828a32b1d53238e3527da1991ed711 (patch) | |
tree | d325baff96eae718bf6d9997e7cccb64cef7b0e2 /lib/stdlib/src/gb_trees.erl | |
parent | 26ed9f0e4a23985b7a0fbf7d9a38142edaf5c1aa (diff) | |
download | otp-dc844097e0828a32b1d53238e3527da1991ed711.tar.gz otp-dc844097e0828a32b1d53238e3527da1991ed711.tar.bz2 otp-dc844097e0828a32b1d53238e3527da1991ed711.zip |
dialyzer: Modify the handling of parametrized opaque types
In OTP 17 it is possible to mix types such as dict:dict() and
dict:dict(_, _) outside of the dict module (and similarly for some
other opaque types in STDLIB), but the results are unfortunately
possibly invalid warnings in users' code. In OTP 18 parameterized
opaque types with the same name but with different number of
parameters are no longer compatible when seen from outside of the
module where the types are declared.
The types in STDLIB have been updated accordingly; for instance
-opaque dict() :: dict(_, _).
has been replaced by
-type dict() :: dict(_, _).
Diffstat (limited to 'lib/stdlib/src/gb_trees.erl')
-rw-r--r-- | lib/stdlib/src/gb_trees.erl | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/stdlib/src/gb_trees.erl b/lib/stdlib/src/gb_trees.erl index 259e8f718b..2cbfd8fd2a 100644 --- a/lib/stdlib/src/gb_trees.erl +++ b/lib/stdlib/src/gb_trees.erl @@ -160,11 +160,10 @@ -type gb_tree_node(K, V) :: 'nil' | {K, V, gb_tree_node(K, V), gb_tree_node(K, V)}. --type gb_tree_node() :: gb_tree_node(_, _). -opaque tree(Key, Value) :: {non_neg_integer(), gb_tree_node(Key, Value)}. --opaque tree() :: tree(_, _). +-type tree() :: tree(_, _). -opaque iter(Key, Value) :: [gb_tree_node(Key, Value)]. --opaque iter() :: [gb_tree_node()]. +-type iter() :: iter(_, _). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |