[erlang-bugs] Internal error in sys_core_fold when matching on map is guaranteed to fail

Ulf Norell ulf.norell@REDACTED
Tue Mar 18 17:50:13 CET 2014


That fixed the case when the map doesn't match but I get the same error
when it's the map that matches and other patterns that don't:

-module(bug).
f() ->
  case #{} of
    #{} -> 0;
    a   -> 1
  end.

This is on master from today (aab1afa8a63081f2c30f83ebe8b6caaac979795c).

/ Ulf


On Tue, Mar 4, 2014 at 11:38 PM, Anthony Ramine <n.oxyde@REDACTED> wrote:

> https://github.com/erlang/otp/pull/267
>
> --
> Anthony Ramine
>
> Le 4 mars 2014 à 09:45, Ulf Norell <ulf.norell@REDACTED> a écrit :
>
> > This one crashes in a different place but likely for the same reason.
> >
> > -module(bug).
> > f() ->
> >   case true of
> >     #{}  -> error;
> >     true -> ok
> >   end.
> >
> > $ erl
> > Erlang/OTP 17 [RELEASE CANDIDATE 2] [erts-6.0] [source-a74e66a] [64-bit]
> [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
> >
> > Eshell V6.0  (abort with ^G)
> > 1> c(bug).
> > Function: f/0
> > bug.erl: internal error in core_fold_module;
> > crash reason: function_clause
> >
> >   in function  sys_core_fold:opt_bool_clauses/3
> >      called as sys_core_fold:opt_bool_clauses([],true,false)
> >   in call from sys_core_fold:opt_bool_clauses/3 (sys_core_fold.erl, line
> 1815)
> >   in call from sys_core_fold:opt_bool_clauses/1 (sys_core_fold.erl, line
> 1790)
> >   in call from sys_core_fold:opt_bool_case/1 (sys_core_fold.erl, line
> 1779)
> >   in call from sys_core_fold:expr/3 (sys_core_fold.erl, line 347)
> >   in call from sys_core_fold:opt_simple_let_1/4 (sys_core_fold.erl, line
> 2562)
> >   in call from sys_core_fold:expr/3 (sys_core_fold.erl, line 355)
> >   in call from sys_core_fold:expr/3 (sys_core_fold.erl, line 279)
> > bug.erl:2: Warning: function f/0 is unused
> > error
> >
> > / Ulf
> >
> >
> >
> > On Tue, Mar 4, 2014 at 9:42 AM, Ulf Norell <ulf.norell@REDACTED> wrote:
> > -module(bug).
> > f() ->
> >   case maybe_map of
> >     #{}     -> ok;
> >     not_map -> error
> >   end.
> >
> > $ erl
> > Erlang/OTP 17 [RELEASE CANDIDATE 2] [erts-6.0] [source-a74e66a] [64-bit]
> [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
> >
> > Eshell V6.0  (abort with ^G)
> > 1> c(bug).
> > Function: f/0
> > bug.erl: internal error in core_fold_module;
> > crash reason: {case_clause,{none}}
> >
> >   in function  sys_core_fold:will_match/2 (sys_core_fold.erl, line 1748)
> >   in call from sys_core_fold:clauses/5 (sys_core_fold.erl, line 1701)
> >   in call from sys_core_fold:clauses/5 (sys_core_fold.erl, line 1718)
> >   in call from sys_core_fold:expr/3 (sys_core_fold.erl, line 352)
> >   in call from sys_core_fold:clause/4 (sys_core_fold.erl, line 1481)
> >   in call from sys_core_fold:clauses/5 (sys_core_fold.erl, line 1699)
> >   in call from sys_core_fold:expr/3 (sys_core_fold.erl, line 352)
> >   in call from sys_core_fold:expr/3 (sys_core_fold.erl, line 279)
> > bug.erl:2: Warning: function f/0 is unused
> > error
> >
> > / Ulf
> >
> >
> > _______________________________________________
> > erlang-bugs mailing list
> > erlang-bugs@REDACTED
> > http://erlang.org/mailman/listinfo/erlang-bugs
>
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20140318/1dfff82f/attachment.htm>


More information about the erlang-bugs mailing list