diff --git a/lib/compiler/test/Makefile b/lib/compiler/test/Makefile index 4bbc945fba3d..51b3064589a1 100644 --- a/lib/compiler/test/Makefile +++ b/lib/compiler/test/Makefile @@ -33,7 +33,6 @@ MODULES= \ record_SUITE \ trycatch_SUITE \ warnings_SUITE \ - unused_multiple_values \ test_lib NO_OPT= \ diff --git a/lib/compiler/test/core_fold_SUITE.erl b/lib/compiler/test/core_fold_SUITE.erl index ca802e276487..a479f00221ef 100644 --- a/lib/compiler/test/core_fold_SUITE.erl +++ b/lib/compiler/test/core_fold_SUITE.erl @@ -37,7 +37,8 @@ all() -> groups() -> [{p,test_lib:parallel(), [t_element,setelement,t_length,append,t_apply,bifs, - eq,nested_call_in_case,guard_try_catch,coverage,unused_values]}]. + eq,nested_call_in_case,guard_try_catch,coverage, + unused_multiple_values_error,unused_multiple_values]}]. init_per_suite(Config) -> @@ -297,9 +298,28 @@ unused_multiple_values_error(Config) when is_list(Config) -> ok. unused_multiple_values(Config) when is_list(Config) -> - PrivDir = ?config(priv_dir, Config), - Dir = filename:dirname(code:which(?MODULE)), - File = filename:join(Dir, "unused_multiple_values"), - Opts = [return,{outdir,PrivDir}|test_lib:opt_opts(?MODULE)], - {ok,unused_multiple_values} = c:c(File, Opts), + put(unused_multiple_values, []), + [false] = test_unused_multiple_values(false), + [b,a,{a,b},false] = test_unused_multiple_values({a,b}), + ok. + +test_unused_multiple_values(X) -> + ok = do_unused_multiple_values(X), + get(unused_multiple_values). + +do_unused_multiple_values(X) -> + case do_something(X) of + false -> + A = false; + Res -> + {A,B} = Res, + do_something(A), + do_something(B) + end, + _ThisShouldNotFail = A, ok. + +do_something(I) -> + put(unused_multiple_values, + [I|get(unused_multiple_values)]), + I. diff --git a/lib/compiler/test/unused_multiple_values.erl b/lib/compiler/test/unused_multiple_values.erl deleted file mode 100644 index 1e319012b6b8..000000000000 --- a/lib/compiler/test/unused_multiple_values.erl +++ /dev/null @@ -1,14 +0,0 @@ --module(unused_multiple_values). --export([hello/1]). - -hello(X) -> - case external:do_something(X) of - false -> - A = false; - Res -> - {A,B} = Res, - external:do_something(A), - external:do_something(B) - end, - _ThisShouldNotFail = A, - ok.