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_r208499266
########## File path: java.hints/src/org/netbeans/modules/java/hints/jdk/ConvertVarToExplicitType.java ########## @@ -119,15 +148,21 @@ protected void performRewrite(TransformationContext tc) throws Exception { private static boolean isLocalVarType(HintContext ctx) { CompilationInfo info = ctx.getInfo(); - + if (info.getSourceVersion().compareTo(SourceVersion.RELEASE_9) < 1) { return false; - } + } TreePath treePath = ctx.getPath(); - + EnhancedForLoopTree efl = null; + TypeMirror expressionType = null; + if (treePath.getLeaf() instanceof EnhancedForLoopTree) { Review comment: In fact an implementation class (i.e. a proxy, or some kind of adapter) could implement a number of interfaces, which can confuse `instanceof` checks. As a general rule, if an API defines an enum / tag whose values correspond to interfaces, the tag should be used in preference to `instanceof`, just to avoid possible future problems. It's true that `instanceof interface-type` costs more cycles than `instanceof class-type`. ---------------------------------------------------------------- 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