bug in erl_eval

View: New views
2 Messages — Rating Filter:   Alert me  

bug in erl_eval

by Ulf Wiger-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


The following shell dialogue didn't work out
as expected:

1> E = fun(N) -> if is_integer(N) -> <<N/integer>>; true -> throw(foo)
end end.
#Fun<erl_eval.6.13229925>
2> << << (E(V))/binary >> || V <- [1,2,3] >>.
<<1,2,3>>
3> catch << << (E(V))/binary >> || V <- [1,2,3,a] >>.
{'EXIT',{{case_clause,foo},
          [{erl_eval,expr,5},
           {erl_eval,eval_bc1,6},
           {erl_eval,eval_generate,7},
           {erl_eval,eval_bc,6},
           {erl_eval,expr,5},
           {shell,exprs,6},
           {shell,eval_exprs,6},
           {shell,eval_loop,3}]}}

List comprehensions work as expected, though.

4> [ E(V) || V <- [1,2,3]].
[<<1>>,<<2>>,<<3>>]
5> catch [ E(V) || V <- [1,2,3,a]].
foo

BR,
Ulf W
--
Ulf Wiger
CTO, Erlang Training & Consulting Ltd
http://www.erlang-consulting.com

________________________________________________________________
erlang-bugs mailing list. See http://www.erlang.org/faq.html
erlang-bugs (at) erlang.org


Re: bug in erl_eval

by Hans Bolinder-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

[Ulf Wiger:]

>
> The following shell dialogue didn't work out
> as expected:
>
> 1> E = fun(N) -> if is_integer(N) -> <<N/integer>>; true -> throw(foo)
> end end.
> #Fun<erl_eval.6.13229925>
> 2> << << (E(V))/binary >> || V <- [1,2,3] >>.
> <<1,2,3>>
> 3> catch << << (E(V))/binary >> || V <- [1,2,3,a] >>.
> {'EXIT',{{case_clause,foo},
>           [{erl_eval,expr,5},
>            {erl_eval,eval_bc1,6},
>            {erl_eval,eval_generate,7},
>            {erl_eval,eval_bc,6},
>            {erl_eval,expr,5},
>            {shell,exprs,6},
>            {shell,eval_exprs,6},
>            {shell,eval_loop,3}]}}

Thanks for the bug report. We'll fix the bug in R13B02.

Best regards,

Hans Bolinder, Erlang/OTP team, Ericsson

________________________________________________________________
erlang-bugs mailing list. See http://www.erlang.org/faq.html
erlang-bugs (at) erlang.org