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

lkishalmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new fa61687  Fixing vanilla indexer to handle based anonymous classes 
properly.
fa61687 is described below

commit fa61687d410f5b4e7ebdfe4c35ea4830e2a3ddad
Author: Jan Lahoda <[email protected]>
AuthorDate: Thu Jun 18 06:25:35 2020 +0200

    Fixing vanilla indexer to handle based anonymous classes properly.
---
 .../java/source/indexing/VanillaCompileWorker.java |  6 ++++-
 .../source/indexing/VanillaCompileWorkerTest.java  | 27 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git 
a/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
 
b/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
index 6506ebd..34e5f1d 100644
--- 
a/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
+++ 
b/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
@@ -622,7 +622,11 @@ final class VanillaCompileWorker extends CompileWorker {
                 if (node.getClassBody() != null && 
!nc.clazz.type.hasTag(TypeTag.ERROR)) {
                     MethodSymbol constructor = (MethodSymbol) nc.constructor;
                     ListBuffer<JCExpression> args = new ListBuffer<>();
-                    for (VarSymbol param : constructor.params) {
+                    int startIdx = 0;
+                    if (node.getEnclosingExpression() != null) {
+                        startIdx = 1;
+                    }
+                    for (VarSymbol param : 
constructor.params.subList(startIdx, constructor.params.size())) {
                         args.add(make.TypeCast(param.type, 
make.Literal(TypeTag.BOT, null).setType(syms.botType)));
                     }
                     nc.args = args.toList();
diff --git 
a/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
 
b/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
index 96b8558..7cae875 100644
--- 
a/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
+++ 
b/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
@@ -611,6 +611,33 @@ public class VanillaCompileWorkerTest extends 
CompileWorkerTestBase {
                      createdFiles);
     }
 
+    public void testBasedAnonymous() throws Exception {
+        ParsingOutput result = 
runIndexing(Arrays.asList(compileTuple("test/Test.java",
+                                                                      "package 
test;\n" +
+                                                                      "public 
class Test {\n" +
+                                                                      "    
private int i;\n" +
+                                                                      "    
static void test(Test t) {\n" +
+                                                                      "        
t.new Inner() {};\n" +
+                                                                      "    
}\n" +
+                                                                      "    
class Inner {}\n" +
+                                                                      "}\n")),
+                                           Arrays.asList());
+
+        assertFalse(result.lowMemory);
+        assertTrue(result.success);
+
+        Set<String> createdFiles = new HashSet<String>();
+
+        for (File created : result.createdFiles) {
+            
createdFiles.add(getWorkDir().toURI().relativize(created.toURI()).getPath());
+        }
+
+        assertEquals(new 
HashSet<String>(Arrays.asList("cache/s1/java/15/classes/test/Test.sig",
+                                                       
"cache/s1/java/15/classes/test/Test$Inner.sig",
+                                                       
"cache/s1/java/15/classes/test/Test$1.sig")),
+                     createdFiles);
+    }
+
     public static void noop() {}
 
     @Override


---------------------------------------------------------------------
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