On Tue, 18 Apr 2023 09:13:01 GMT, Jan Lahoda <jlah...@openjdk.org> wrote:
>> This is the first draft of a patch for JEP 440 and JEP 441. Changes included: >> >> - the pattern matching for switch and record patterns features are made >> final, together with updates to tests. >> - parenthesized patterns are removed. >> - qualified enum constants are supported for case labels. >> >> This change herein also includes removal record patterns in for each loop, >> which may be split into a separate PR in the future. > > Jan Lahoda has updated the pull request incrementally with six additional > commits since the last revision: > > - Fixing infinite loop where a binding pattern is replaced with a binding > pattern for the same type. > - Reflecting review comments. > - Fixing exhaustiveness for unsealed supertype pattern. > - No need to enable features after error reported. > - SwitchBootstraps.typeSwitch should not initialize enum classes. > - A prototype of avoiding enum initialization. src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java line 1021: > 1019: * on patterns in the chosen column, as described above > 1020: */ > 1021: var grouppedPerRecordClass = Suggestion: var groupedPerRecordClass = src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java line 1058: > 1056: for (int i = 0; i < > rpOne.nested.length; i++) { > 1057: if (i != mismatchingCandidate && > 1058: > !exactlyMatches(rpOne.nested[i], rpOther.nested[i])) { should `exactlyMatches` be the implementation of `equals` in the `PatternDescriptor` class? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13074#discussion_r1170131443 PR Review Comment: https://git.openjdk.org/jdk/pull/13074#discussion_r1170135800