This is an automated email from the ASF dual-hosted git repository.

jlahoda pushed a commit to branch release90
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git

commit 0071754da5e2384458bf1ea310a2a9d2d78ce7e8
Author: Arunava Sinha <arunava.si...@oracle.com>
AuthorDate: Thu May 24 15:10:10 2018 +0530

    [NETBEANS-481] JDK10-LVTI: Handled scenarios related to empty array/invalid 
array as var initializer
---
 .../hints/errors/ConvertInvalidVarToExplicitArrayType.java   | 12 +++++++++---
 .../errors/ConvertInvalidVarToExplicitArrayTypeTest.java     | 12 ++++++++++++
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git 
a/java.hints/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayType.java
 
b/java.hints/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayType.java
index 8c7fda3..428cb05 100644
--- 
a/java.hints/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayType.java
+++ 
b/java.hints/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayType.java
@@ -47,7 +47,7 @@ import javax.lang.model.util.Types;
  * @author arusinha
  */
 @Messages({
-    "DN_ConvertVarToExplicitType=Replace var with explicit type" 
+    "DN_ConvertVarToExplicitType=Replace var with explicit type"
 })
 public class ConvertInvalidVarToExplicitArrayType implements ErrorRule<Void> {
 
@@ -83,6 +83,11 @@ public class ConvertInvalidVarToExplicitArrayType implements 
ErrorRule<Void> {
 
             NewArrayTree arrayTree = (NewArrayTree) 
oldVariableTree.getInitializer();
             List<? extends ExpressionTree> currentValues = 
arrayTree.getInitializers();
+
+            if (currentValues.isEmpty()) {
+                return null;
+            }
+
             TreePath initArrayTreePath = new TreePath(treePath, arrayTree);
             Types types = compilationInfo.getTypes();
             Trees trees = compilationInfo.getTrees();
@@ -91,8 +96,9 @@ public class ConvertInvalidVarToExplicitArrayType implements 
ErrorRule<Void> {
 
                 TypeMirror etType = trees.getTypeMirror(new 
TreePath(initArrayTreePath, tree));
 
-                //skipped fix for parameterized array member as parameterized 
array is not possible.
-                if (etType.getKind() == TypeKind.DECLARED && !((DeclaredType) 
etType).getTypeArguments().isEmpty()) {
+                //skipped fix for invalid array member and for parameterized 
array member.
+                if (etType == null || etType.getKind() == TypeKind.ERROR || 
(etType.getKind() == TypeKind.DECLARED
+                        && !((DeclaredType) 
etType).getTypeArguments().isEmpty())) {
                     return null;
                 }
 
diff --git 
a/java.hints/test/unit/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayTypeTest.java
 
b/java.hints/test/unit/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayTypeTest.java
index 50d07eb..a36d16f 100644
--- 
a/java.hints/test/unit/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayTypeTest.java
+++ 
b/java.hints/test/unit/src/org/netbeans/modules/java/hints/errors/ConvertInvalidVarToExplicitArrayTypeTest.java
@@ -52,6 +52,18 @@ public class ConvertInvalidVarToExplicitArrayTypeTest 
extends ErrorHintsTestBase
         super.tearDown();
     }
 
+        public void testEmptyArrayAsInitializer() throws Exception {
+        performAnalysisTest("test/Test.java",
+                "package test; public class Test {{final var j = {};}}",
+                -1);
+    }
+        
+    public void testInvalidArrayAsInitializer() throws Exception {
+        performAnalysisTest("test/Test.java",
+                "package test; public class Test {{final var j = 
{int1,var1,\"hello\"};}}",
+                -1);
+    }
+
     public void testParameterizedElements() throws Exception {
         performAnalysisTest("test/Test.java",
                 "package test; public class Test {{final var j = {new 
java.util.ArrayList<String>(),new java.util.ArrayList<String>()};}}",

-- 
To stop receiving notification emails like this one, please contact
jlah...@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

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

Reply via email to