[patterns-instanceof] Spec for next version of Patterns in instanceof JEP

Gavin Bierman gavin.bierman at oracle.com
Thu Oct 8 09:18:45 UTC 2020



> On 5 Oct 2020, at 16:20, Brian Goetz <brian.goetz at oracle.com> wrote:
> 
> 5.5.  I think of `instanceof` as having two forms:
> 
>     o instanceof Type
>     o instanceof Pattern
> 
> This phrasing ("converted to the type indicated by the second operand") is consistent with the first, but I think needs a few more words to be consistent with the second?  Every pattern has a "principal type" (making up a term); the principal type of a type pattern `T t` is `T`; the principal type of a deconstruction pattern `D(...)` is `D`.  (The definition for other kinds of patterns like constant patterns or declared         patterns are straightforward enough to define as needed.)  

[The spec also thinks there are two forms of instanceof - see second line of 15.20.2!]

You don’t need to make up a term; it’s there already. In 14.30.1.1.:

The type of a type test pattern is the ReferenceType.

I use this notion of “type of a pattern” elsewhere. I tried to hedge the phrasing in 5.5 to spare myself mentioning both forms of instanceof, but perhaps it would just be clearer to do so.

Thanks.
Gavin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20201008/418fed93/attachment.htm>


More information about the amber-spec-experts mailing list