diff options
author | Björn Gustavsson <[email protected]> | 2019-05-27 14:16:12 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-05-27 14:16:12 +0200 |
commit | a52b0126c19ab7d49126c82183a0477e25373bfe (patch) | |
tree | 3d8c7401542cc7b0f98b71664e4f2d33023e458b /lib/compiler/test | |
parent | 435a3d3c0495c33df512b3dec87f01e3d721f77f (diff) | |
parent | 73c5ceba1185b0be7db9acac8593e5b913dba845 (diff) | |
download | otp-a52b0126c19ab7d49126c82183a0477e25373bfe.tar.gz otp-a52b0126c19ab7d49126c82183a0477e25373bfe.tar.bz2 otp-a52b0126c19ab7d49126c82183a0477e25373bfe.zip |
Merge branch 'bjorn/compiler/fix-unloadable-code-patch/ERL-955/OTP-15846' into maint
* bjorn/compiler/fix-unloadable-code-patch/ERL-955/OTP-15846:
Fix loading of Core Erlang code for extracting a map element
Diffstat (limited to 'lib/compiler/test')
-rw-r--r-- | lib/compiler/test/core_SUITE.erl | 7 | ||||
-rw-r--r-- | lib/compiler/test/core_SUITE_data/get_map_element.core | 18 |
2 files changed, 23 insertions, 2 deletions
diff --git a/lib/compiler/test/core_SUITE.erl b/lib/compiler/test/core_SUITE.erl index e5611e99d1..72016c6d76 100644 --- a/lib/compiler/test/core_SUITE.erl +++ b/lib/compiler/test/core_SUITE.erl @@ -29,7 +29,8 @@ bs_shadowed_size_var/1, cover_v3_kernel_1/1,cover_v3_kernel_2/1,cover_v3_kernel_3/1, cover_v3_kernel_4/1,cover_v3_kernel_5/1, - non_variable_apply/1,name_capture/1,fun_letrec_effect/1]). + non_variable_apply/1,name_capture/1,fun_letrec_effect/1, + get_map_element/1]). -include_lib("common_test/include/ct.hrl"). @@ -57,7 +58,8 @@ groups() -> bs_shadowed_size_var, cover_v3_kernel_1,cover_v3_kernel_2,cover_v3_kernel_3, cover_v3_kernel_4,cover_v3_kernel_5, - non_variable_apply,name_capture,fun_letrec_effect + non_variable_apply,name_capture,fun_letrec_effect, + get_map_element ]}]. @@ -95,6 +97,7 @@ end_per_group(_GroupName, Config) -> ?comp(non_variable_apply). ?comp(name_capture). ?comp(fun_letrec_effect). +?comp(get_map_element). try_it(Mod, Conf) -> Src = filename:join(proplists:get_value(data_dir, Conf), diff --git a/lib/compiler/test/core_SUITE_data/get_map_element.core b/lib/compiler/test/core_SUITE_data/get_map_element.core new file mode 100644 index 0000000000..092b5e71eb --- /dev/null +++ b/lib/compiler/test/core_SUITE_data/get_map_element.core @@ -0,0 +1,18 @@ +module 'get_map_element' ['get_map_element'/0] +attributes [] + +'get_map_element'/0 = + fun () -> + apply 'match_map'/1(~{'foo'=>'bar'}~) + +'match_map'/1 = + fun (_0) -> + case _0 of + <~{'foo':='bar'}~> when 'true' -> + 'ok' + %% It will be undefined behaviour at runtime if no + %% clause of the case can be selected. That can't + %% happen for this module, because match_map/1 is + %% always called with a matching map argument. + end +end |