RFR: 8250625: Compiler implementation of Pattern Matching for instanceof (Final) [v2]

Vicente Romero vromero at openjdk.java.net
Wed Oct 21 00:21:22 UTC 2020


On Tue, 20 Oct 2020 12:03:39 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:

>> This is the current proposed patch for the upcoming JEP 394, for pattern matching for instanceof.
>> 
>> A summary of changes:
>> -making the feature permanent (non-preview)
>> -making the binding variables non-final (as per current specification proposal)
>> -producing a compile-time error for the case where the expression's type is a subtype of the type test pattern's type
>>  (as per current specification proposal)
>> -changing the AST structure so that the binding variable has a VariableTree in the AST. BindingPatternTree is preserved
>>  and encloses the VariableTree. The reason is better consistency in the API, with nodes like CatchTree, EnhancedForLoop
>>  Tree, etc.
>> 
>> This change will not be integrated until JEP 394 is targetted.
>
> Jan Lahoda has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev
> excludes the unrelated changes brought in by the merge/rebase. The pull request contains 15 additional commits since
> the last revision:
>  - Cleanup: using a null instead of List.of() as a parameter to JavaCompiler.getTask
>  - Merge branch 'master' into patterns-instanceof3
>  - Fixing more tests.
>  - Correcting positions.
>  - Improve the AST model.
>  - Merge branch 'master' into patterns-instanceof3
>  - Updating @since tags.
>  - Merge branch 'master' into patterns-instanceof3
>  - Cleaning up preview comments in javadoc.
>  - Merge branch 'master' into patterns-instanceof3
>  - ... and 5 more: https://git.openjdk.java.net/jdk/compare/3b3bcc2a...5978bca0

src/jdk.compiler/share/classes/com/sun/source/tree/BindingPatternTree.java line 48:

> 46:      * @deprecated Use getVariable().getType()
> 47:      */
> 48:     @Deprecated

shouldn't we use `@Deprecated(since=versionNumber)`

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

PR: https://git.openjdk.java.net/jdk/pull/559


More information about the core-libs-dev mailing list