diff options
Diffstat (limited to 'lib/dialyzer/test/behaviour_SUITE_data/src/otp_6221/my_callbacks_correct.erl')
-rw-r--r-- | lib/dialyzer/test/behaviour_SUITE_data/src/otp_6221/my_callbacks_correct.erl | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/dialyzer/test/behaviour_SUITE_data/src/otp_6221/my_callbacks_correct.erl b/lib/dialyzer/test/behaviour_SUITE_data/src/otp_6221/my_callbacks_correct.erl new file mode 100644 index 0000000000..4a08017c84 --- /dev/null +++ b/lib/dialyzer/test/behaviour_SUITE_data/src/otp_6221/my_callbacks_correct.erl @@ -0,0 +1,17 @@ +-module(my_callbacks_correct). + +-behaviour(my_behaviour). + +-export([foo/0]). + +-type pair(A,B) :: {A,B}. + +-type nested() :: pair(pair(pair(f,f),f),f). + +%% This is correctly implemented, but a combination of Dialyzer +%% "simplification" logic and subtyping rules for behaviours means +%% this implementation has historically been erroneously rejected +-spec foo() -> #{ nested() => x }. +foo() -> + Ret = #{ {{{f,f}, f}, f} => x }, + Ret. |