Jason Carr

Results 67 comments of Jason Carr

We discussed this during sync. We agreed that the most helpful thing to do would be to report that the type is invalid / uninhabited. This would make compilation easier,...

But in any case, finally get to check all of these boxes on the language checklist: * [X] Your type system is unsound * [X] a proof of same is...

On second inspection, this is not enough; the variables included in the match must also not be consumable: ``` let x: A iso = A match x with | let...

That seems like it would work, although this area does get rather thorny when talking about more complicated expressions than a single variable (we'd likely have to invalidate quite a...

> I think your suggested approach fails too though, since it only considers consumes and not field extraction (and similar)... even if you prevent consumes in the match body, nothing...

> Honestly when you first raised this bug I was surprised that we allowed non-ephemeral match at all. This too. My first thought was that there was no way to...

While we're at it, a related issue that seems like it should be solved together or held until this one is solved: `iso` match bindings can be invalidated by mutation...

Sure: https://playground.ponylang.io/?gist=d0c848aa83aeac85e93dfe5c11bd10ad ``` class A fun string(): String => "A" class B fun string(excited: Bool = false): String => "B" + (if excited then "!" else "" end) actor Main...

If it was just subtyping I would be more amenable to agree (but still strongly prefer allowing it). But here it's a simple method call so it's far more surprising...

I'd say it's still odd that something which supports `.string()` isn't `Stringable`. But in any case we'll discuss in sync