# New Ticket Created by  "Carl Mäsak" 
# Please include the string:  [perl #122716]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=122716 >


<Ven> Oooh, I got a segfault!
<Ven> https://gist.github.com/Nami-Doc/f0232a94cec52f0ec14c <- this
segfaults here :)

Code inlined for great justice:

role Zero {
  constant count = 0;
}
role Suc[::N] {
  constant count = 1 + N::count;
}

subset _0 of Zero;
subset _1 of Suc[Zero];
subset _2 of Suc[_1];
# and on and on ...

say Suc[Suc[Suc[Zero]]]::count;

<masak> there's probably something submittable in there, but it
doesn't look golf'd.
<masak> segfault reproduced. golfing.
<Ven> ah, thanks :)
< masak> m: role S[::N] { N::x }
<camelia> rakudo-moar 4a7429: OUTPUT«(signal )»
* masak submits rakudobug
<masak> m: sub foo(::N) { N::x }
<camelia> rakudo-moar 4a7429: OUTPUT«(signal )»
<Ven> masak++ # golfing while I'm having fun
<masak> m: my (::N); N::x
* moritz could imagine that masak++ is also having fun
<camelia> rakudo-moar 4a7429: OUTPUT«(signal )»
<masak> definitely having fun :)

It does make sense to :: into a type capture, as Ven's bigger example
shows. But it seems it's done "too soon", and it blows up some
sensitive internal bit or other.

Reply via email to