sdedic commented on a change in pull request #650: [NETBEANS-1075]-Adding var hints for enhanced-for-loop URL: https://github.com/apache/incubator-netbeans/pull/650#discussion_r209254448
########## File path: java.hints/src/org/netbeans/modules/java/hints/jdk/ConvertToVarHint.java ########## @@ -148,9 +172,17 @@ private static boolean preConditionChecker(HintContext ctx) { } TreePath treePath = ctx.getPath(); + EnhancedForLoopTree efl = null; + TypeMirror expressionType = null; + if (treePath.getLeaf().getKind() == Tree.Kind.ENHANCED_FOR_LOOP) { + efl = (EnhancedForLoopTree) treePath.getLeaf(); + expressionType = ctx.getInfo().getTrees().getTypeMirror(new TreePath(treePath, efl.getExpression())); + } + Element treePathElement = info.getTrees().getElement(treePath); // variable should have local scope - if (info.getTrees().getElement(treePath).getKind() != ElementKind.LOCAL_VARIABLE) { + //No need to DeclaredType check as primitive types can also be replaced with var in enhanced-for-loop + if ((treePathElement != null && treePathElement.getKind() != ElementKind.LOCAL_VARIABLE) && expressionType == null) { Review comment: If I (this time) understood well, the expressionType `!= null` for enhanced for-loop. So the left side of condition only applies in variable declaration case. To be more explicit, it could move to `else` branch of the if: ``` if (treePath.getLeaf().getKind() == Tree.Kind.ENHANCED_FOR_LOOP) { ... } else { Element treePathElement = info.getTrees().getElement(treePath); if ((treePathElement != null && treePathElement.getKind() != ElementKind.LOCAL_VARIABLE) { } ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@netbeans.apache.org For additional commands, e-mail: notifications-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists