diff options
author | Erlang/OTP <[email protected]> | 2019-05-29 13:24:44 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2019-05-29 13:24:44 +0200 |
commit | df4553e703673565db79e7a8340db86615a369ea (patch) | |
tree | 2a49dcb3be6a1ca4b7b6dc0b57d14b9cd8d59582 /lib/compiler/test | |
parent | ebab8243464392428b4e2e9f321c8716ec199355 (diff) | |
parent | 73c5ceba1185b0be7db9acac8593e5b913dba845 (diff) | |
download | otp-df4553e703673565db79e7a8340db86615a369ea.tar.gz otp-df4553e703673565db79e7a8340db86615a369ea.tar.bz2 otp-df4553e703673565db79e7a8340db86615a369ea.zip |
Merge branch 'bjorn/compiler/fix-unloadable-code-patch/ERL-955/OTP-15846' into maint-22
* 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 |