RFR: 8302344: Compiler Implementation for Unnamed patterns and variables (Preview) [v14]

Jan Lahoda jlahoda at openjdk.org
Fri May 5 09:29:35 UTC 2023


On Thu, 4 May 2023 23:28:29 GMT, Aggelos Biboudis <abimpoudis at openjdk.org> wrote:

>> This PR implements [JEP 443](https://openjdk.org/jeps/443), the preview feature for Unnamed Patterns and Variables in Java.
>> 
>> Draft Spec: https://cr.openjdk.org/~abimpoudis/unnamed/latest/
>
> Aggelos Biboudis has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8307482: Compiler should accept var _ in nested patterns in switch case

src/jdk.compiler/share/classes/com/sun/source/tree/AnyPatternTree.java line 32:

> 30:  *
> 31:  */
> 32: public interface AnyPatternTree extends PatternTree {

`@PreviewFeature` here.

src/jdk.compiler/share/classes/com/sun/source/tree/Tree.java line 227:

> 225:          * @since 21
> 226:          */
> 227:         ANY_PATTERN(AnyPatternTree.class),

@PreviewFeature here.

src/jdk.compiler/share/classes/com/sun/source/tree/TreeVisitor.java line 267:

> 265:      * @since 21
> 266:      */
> 267:     R visitAnyPattern(AnyPatternTree node, P p);

@PreviewFeature here.

src/jdk.compiler/share/classes/com/sun/source/util/SimpleTreeVisitor.java line 641:

> 639:      */
> 640:     @Override
> 641:     public R visitAnyPattern(AnyPatternTree node, P p) {

`@PreviewFeature` here.

src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java line 773:

> 771:      */
> 772:     @Override
> 773:     public R visitAnyPattern(AnyPatternTree node, P p) {

`@PreviewFeature` here.

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java line 329:

> 327:                 nestedBinding = nestedDesugared.primaryPattern();
> 328:                 allowNull = false;
> 329:             } else if (nestedPattern instanceof JCAnyPattern nestedRecordPattern) {

Nit: `nestedRecordPattern` -> `nestedAnyPattern`?

test/langtools/tools/javac/patterns/Unnamed.java line 8:

> 6:  * @summary Compiler Implementation for Unnamed patterns and variables
> 7:  * @enablePreview
> 8:  * @compile --enable-preview -source ${jdk.version} Unnamed.java

+1 on keeping the `@compile` tag, but `--enable-preview -source ${jdk.version}` shouldn't be needed when `@enablePreview` is present.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185805923
PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185807097
PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185807170
PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185807989
PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185808102
PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185819402
PR Review Comment: https://git.openjdk.org/jdk/pull/13528#discussion_r1185871609


More information about the compiler-dev mailing list