<N: VoidRegister>
Andreas Franke
afranke at ags.uni-sb.de
Mon Sep 11 10:36:29 CEST 2006
Filip Konvička wrote:
> I've just spotted a serious emulator error, could you please confirm it?
>
> local
> fun {Fct C _}
> C
> end
> in
> {System.showInfo
> {Fct some/*#thing*/
> case xyz
> of something(Msg ...) then
> nil
> else
> {System.showInfo nil}
> nil
> end
> }
> }
> end
>
> fails with
>
> %*************************** type error *************************
> %**
> %** Expected type: virtualstring
> %** At argument: 1
> %** In statement: {System.showInfo <N: VoidRegister>}
> %**
> %** Call Stack:
> %** toplevel abstraction in line 1, column 0, PC = 11812436
> %**--------------------------------------------------------------
Confirmed.
> Any of the following avoids the bug:
> * uncommenting /*#thing*/
> * changing something(Msg ...) to something(Msg)
> * entering the first case branch, e.g. by changing xyz to e.g. something(1)
> * removing the {System.showInfo nil} call
> * changing the 2nd argument from E to (S E) syntax, e.g. (case .... end
> nil); or otherwise trying to avoid the case expression.
>
> The core syntax of the case with and without the "..." look almost the
> same, so I guess it is not a compiler issue.
>
I think it looks very similar to the compiler bug I reported earlier:
http://www.mozart-oz.org/cgi-bin/oz-bugs/compiler?id=1572;user=guest
HTH,
Andreas
More information about the mozart-users
mailing list