Jason Carr
Jason Carr
There was a [question in Zulip]( https://ponylang.zulipchat.com/#narrow/stream/189985-beginner-help/topic/Type.20Question/near/283910013) about this code: ``` type Point is (USize, USize) trait X type PointX is ((USize, USize) & X) actor Main new create(env: Env)...
So in another round of soundness holes, bindings in a match are regular, consumable, assignable variables. This would be sound, but not very useful, if we had to consume before...
If a method call is valid for all members of a union, it should be possible to call on the union. This isn't true if the methods have a different...
``` primitive A primitive B actor Main new create(env: Env) => let bad = Generic[(A | B)].get() env.out.print(match bad | let _: A => "D" | let _: B =>...
This program uses generics to match on capabilities and causes the compiler to segfault as of release 0.42.0 ``` class Weird[S, T] new create(out: OutStream, x: (S | T)) =>...
When calling a `box` method on a `trn` expression, automatic receiver recovery seems to occur without proper checks, and the result is `ref`. I suspect this occurs because the return...
his example code is accepted by the compiler, but should not be: ``` class Worse[T] new create(out: OutStream, x: (String | T)) => match x | let s: String val...
From examination of the IR in many, there are frequent cases where the inputs to a simple testing block are known, and the test could be skipped. Known case will...
Several pieces of code are left around in the representation that are completely dead, but are obviously tterminating because they follow simple arithmetic calculations, or shrinking induction on datatypes (which...
There are several opportunities for late datatype improvements that are not being taken advantage of: - Eliminating redundant fields, potentially deeply nested, in datatypes - Turning tuples of variants into...