mbien commented on code in PR #4467:
URL: https://github.com/apache/netbeans/pull/4467#discussion_r965137493


##########
java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java:
##########
@@ -276,7 +276,18 @@ public CaseTree Case(List<? extends ExpressionTree> 
patterns, Tree body) {
      * @since 2.39
      */
     public CaseTree CasePatterns(List<? extends Tree> patterns, Tree body) {
-        return delegate.CaseMultiplePatterns(patterns.stream().map(p -> 
(CaseLabelTree) p).collect(Collectors.toList()), body);
+        return delegate.CaseMultiplePatterns(patterns.stream().map(p -> {
+            if (p instanceof CaseLabelTree) {
+                return (CaseLabelTree) p;
+            }
+            if (p instanceof ExpressionTree) {
+                return delegate.ConstantCaseLabel((ExpressionTree) p);
+            }
+            if (p instanceof PatternTree) {
+                return delegate.PatternCaseLabel((PatternTree) p, null);
+            }
+            throw new IllegalArgumentException("Invalid pattern kind: " + 
p.getKind()); //NOI18N
+        }).collect(Collectors.toList()), body);

Review Comment:
   this part is used twice and looks like it could grow with future javac 
updates -> could be extracted to a private utility method to make it "DRY".
   
   ```diff
   diff --git 
a/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java 
b/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
   index 0c3fab6..cb830c6 100644
   --- a/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
   +++ b/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
   @@ -276,18 +276,7 @@
         * @since 2.39
         */
        public CaseTree CasePatterns(List<? extends Tree> patterns, Tree body) {
   -        return delegate.CaseMultiplePatterns(patterns.stream().map(p -> {
   -            if (p instanceof CaseLabelTree) {
   -                return (CaseLabelTree) p;
   -            }
   -            if (p instanceof ExpressionTree) {
   -                return delegate.ConstantCaseLabel((ExpressionTree) p);
   -            }
   -            if (p instanceof PatternTree) {
   -                return delegate.PatternCaseLabel((PatternTree) p, null);
   -            }
   -            throw new IllegalArgumentException("Invalid pattern kind: " + 
p.getKind()); //NOI18N
   -        }).collect(Collectors.toList()), body);
   +        return 
delegate.CaseMultiplePatterns(toCaseLabelTreeDelegates(patterns), body);
        }
        
        /**
   @@ -299,7 +288,11 @@
         * @since 2.39
         */
        public CaseTree CasePatterns(List<? extends Tree> patterns, List<? 
extends StatementTree> statements) {
   -        return delegate.CaseMultiplePatterns(patterns.stream().map(p -> {
   +        return 
delegate.CaseMultiplePatterns(toCaseLabelTreeDelegates(patterns), statements);
   +    }
   +
   +    private List<? extends CaseLabelTree> toCaseLabelTreeDelegates(List<? 
extends Tree> patterns) {
   +        return patterns.stream().map(p -> {
                if (p instanceof CaseLabelTree) {
                    return (CaseLabelTree) p;
                }
   @@ -310,7 +303,7 @@
                    return delegate.PatternCaseLabel((PatternTree) p, null);
                }
                throw new IllegalArgumentException("Invalid pattern kind: " + 
p.getKind()); //NOI18N
   -        }).collect(Collectors.toList()), statements);
   +        }).collect(Collectors.toList());
        }
   ```



##########
java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java:
##########
@@ -288,7 +299,18 @@ public CaseTree CasePatterns(List<? extends Tree> 
patterns, Tree body) {
      * @since 2.39
      */
     public CaseTree CasePatterns(List<? extends Tree> patterns, List<? extends 
StatementTree> statements) {
-        return delegate.CaseMultiplePatterns(patterns.stream().map(p -> 
(CaseLabelTree) p).collect(Collectors.toList()), statements);
+        return delegate.CaseMultiplePatterns(patterns.stream().map(p -> {
+            if (p instanceof CaseLabelTree) {
+                return (CaseLabelTree) p;
+            }
+            if (p instanceof ExpressionTree) {
+                return delegate.ConstantCaseLabel((ExpressionTree) p);
+            }
+            if (p instanceof PatternTree) {
+                return delegate.PatternCaseLabel((PatternTree) p, null);
+            }
+            throw new IllegalArgumentException("Invalid pattern kind: " + 
p.getKind()); //NOI18N
+        }).collect(Collectors.toList()), statements);

Review Comment:
   second usage / already handled by the diff above



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to