[pattern-switch] Exhaustiveness
forax at univ-mlv.fr
forax at univ-mlv.fr
Thu Aug 20 21:26:34 UTC 2020
----- Mail original -----
> De: "Brian Goetz" <brian.goetz at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "amber-spec-experts" <amber-spec-experts at openjdk.java.net>
> Envoyé: Jeudi 20 Août 2020 22:37:24
> Objet: Re: [pattern-switch] Exhaustiveness
>> but it doesn't mean that in term of translation strategy we need all
>> those cases as synthetic cases, installing some null checks upfront
>> (of a pattern deconstruction) and a default should be enough, or am i
>> missing something.
>
> They don't have to be implemented as individual synthetic cases, but it
> is a reasonable mental model for purposes of discussing what should happen.
>
> But, depending on what mapping we make between the residue and
> exceptions to be thrown, "null check + default" may not be a
> sufficiently rich model. (It was for enums, but the shape of the
> residue is more complicated here.) If our residue is null, and
> Box(null), Box(novel), and we want want to extrapolate from the
> exception rules we have for enums, then we are throwing different things
> for Box(null) and Box(novel). Which is why synthetic cases might be a
> more accurate starting point; we can express Box(null) and Box(novel) as
> patterns.
Having a meaningful error message with the pattern for both the NPE and ICCE is not enough ?
Rémi
More information about the amber-spec-experts
mailing list