aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test/core_SUITE_data/eval_case.core
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-02-12 14:52:44 +0100
committerBjörn Gustavsson <[email protected]>2014-02-12 14:52:44 +0100
commit152f1a4ba2f4e2f0dfbcde2efe5b5fd5edbdb986 (patch)
treebbd2547b06badbf7537ca966707f1367fb7d0b3f /lib/compiler/test/core_SUITE_data/eval_case.core
parentce1e2d3e865c42b01c8088ee07470a6f25be55cb (diff)
parentc89ada7517420ce9065840ea857a0009418ce2af (diff)
downloadotp-152f1a4ba2f4e2f0dfbcde2efe5b5fd5edbdb986.tar.gz
otp-152f1a4ba2f4e2f0dfbcde2efe5b5fd5edbdb986.tar.bz2
otp-152f1a4ba2f4e2f0dfbcde2efe5b5fd5edbdb986.zip
Merge branch 'bjorn/compiler/optimizations/OTP-11584'
* bjorn/compiler/optimizations/OTP-11584: Teach sys_core_fold:eval_case/2 to cope with handwritten Core Erlang sys_core_fold: Remove a redundant word in a comment
Diffstat (limited to 'lib/compiler/test/core_SUITE_data/eval_case.core')
-rw-r--r--lib/compiler/test/core_SUITE_data/eval_case.core34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/compiler/test/core_SUITE_data/eval_case.core b/lib/compiler/test/core_SUITE_data/eval_case.core
new file mode 100644
index 0000000000..f2776e2b1f
--- /dev/null
+++ b/lib/compiler/test/core_SUITE_data/eval_case.core
@@ -0,0 +1,34 @@
+module 'eval_case' ['eval_case'/0]
+ attributes []
+'eval_case'/0 =
+ fun () ->
+ case <> of
+ <> when 'true' ->
+ case apply 'do_case'/0() of
+ <'ok'> when 'true' ->
+ 'ok'
+ ( <_cor0> when 'true' ->
+ primop 'match_fail'
+ ({'badmatch',_cor0})
+ -| ['compiler_generated'] )
+ end
+ ( <> when 'true' ->
+ ( primop 'match_fail'
+ ({'function_clause'})
+ -| [{'function_name',{'eval_case',0}}] )
+ -| ['compiler_generated'] )
+ end
+'do_case'/0 =
+ fun () ->
+ case let <_cor0> =
+ apply 'id'/1(42)
+ in let <_cor1> =
+ call 'erlang':'+'
+ (_cor0, 7)
+ in {'x',_cor1} of
+ <{'x',49}> when 'true' ->
+ 'ok'
+ end
+'id'/1 =
+ fun (_cor0) -> _cor0
+end