> On 18 Feb 2020, at 15:04, fo...@univ-mlv.fr wrote: > > Hi Gavin, > > ----- Mail original ----- >> De: "Gavin Bierman" <gavin.bier...@oracle.com> >> À: "Remi Forax" <fo...@univ-mlv.fr> >> Cc: "jan lahoda" <jan.lah...@oracle.com>, "amber-spec-experts" >> <amber-spec-experts@openjdk.java.net> >> Envoyé: Mardi 18 Février 2020 15:32:12 >> Objet: Re: Pattern Matching for instanceof (Preview 2) > >> [Just circling back to this, as I added a note about the grammar to the JEP >> page…] >> >>> On 6 Feb 2020, at 20:38, Remi Forax <fo...@univ-mlv.fr> wrote: >>> >>> [moved to amber-spec] >>> >>> ----- Mail original ----- >>>> De: "jan lahoda" <jan.lah...@oracle.com> >>>> À: "amber-dev" <amber-...@openjdk.java.net> >>>> Envoyé: Jeudi 6 Février 2020 21:18:52 >>>> Objet: Pattern Matching for instanceof (Preview 2) >>> >>>> Hi, >>>> >>>> Thanks to Gavin, Brian and Alex, there is a new draft JEP for Pattern >>>> Matching for instanceof (Preview 2): >>>> https://bugs.openjdk.java.net/browse/JDK-8235186 >>>> >>>> Any feedback on the JEP is more than welcome! >>>> >>>> Thanks, >>>> Jan >>> >>> so the difference with the previous preview is that deconstruction is added. >> >> That is correct. >> >>> >>> I see two questions: >>> - the grammar allows to mix var and non-var for a given reference type, i >>> think >>> that should only permitted if the non var is a deconstruction itself ? >> >> I don’t know what you mean here. There are two patterns, a type test pattern >> and >> a deconstruction pattern. In v2 we propose to support deconstruction patterns >> over record types *only*. A deconstruction pattern looks like this: Point(var >> a, var b), i.e. all the components are either (recursively) deconstruction >> patterns, or `var` <identifier>, i.e. with no type needed. I added a note to >> the JEP page pointing out that this is a starting point, and eventually we >> will >> support other patterns in the argument position, specifically <type> >> <identifier>; hopefully in this release. > > Currently we don't support mixing var and non var in lambda parameters. > So my question is: does this pattern Point(var x, int y) that mix a 'var' and > an explicit type allowed or not ?
Aha. So, we’re not at that stage yet - this isn’t allowed by the spec as it stands. This - and many other issues - is why I’m starting small… Do you have a preference? Gavin