This is an automated email from the ASF dual-hosted git repository.
geertjan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 727e223 Fixing a few problems that happen during indexing using JDK's
javac. (#428)
727e223 is described below
commit 727e22333ef7c34ad84f7891db5b36af2c7df2ce
Author: Jan Lahoda <[email protected]>
AuthorDate: Tue Feb 20 09:36:51 2018 +0100
Fixing a few problems that happen during indexing using JDK's javac. (#428)
---
.../java/source/indexing/VanillaCompileWorker.java | 12 +++++++++---
.../source/indexing/VanillaCompileWorkerTest.java | 20 +++++++++++++++++++-
2 files changed, 28 insertions(+), 4 deletions(-)
diff --git
a/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
b/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
index 9853a5c..e7e26ff 100644
---
a/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
+++
b/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
@@ -71,7 +71,6 @@ import javax.lang.model.element.ModuleElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
-import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
import org.netbeans.api.java.classpath.ClassPath;
import org.netbeans.api.java.queries.CompilerOptionsQuery;
@@ -414,11 +413,17 @@ final class VanillaCompileWorker extends CompileWorker {
} else {
mt = (Type.MethodType) msym.type;
}
+ clearMethodType(mt);
+ if (msym.erasure_field != null &&
msym.erasure_field.hasTag(TypeTag.METHOD))
+ clearMethodType((Type.MethodType) msym.erasure_field);
+ clearAnnotations(decl.sym.getMetadata());
+ return super.visitMethod(node, p);
+ }
+
+ private void clearMethodType(Type.MethodType mt) {
mt.restype = error2Object(mt.restype);
mt.argtypes = error2Object(mt.argtypes);
mt.thrown = error2Object(mt.thrown);
- clearAnnotations(decl.sym.getMetadata());
- return super.visitMethod(node, p);
}
@Override
@@ -431,6 +436,7 @@ final class VanillaCompileWorker extends CompileWorker {
ct.interfaces_field = error2Object(ct.interfaces_field);
ct.typarams_field = error2Object(ct.typarams_field);
ct.supertype_field = error2Object(ct.supertype_field);
+ clearAnnotations(clazz.sym.getMetadata());
super.visitClass(node, p);
for (JCTree def : clazz.defs) {
if (def.hasTag(JCTree.Tag.ERRONEOUS)) {
diff --git
a/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
b/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
index 2ef9993..7532477 100644
---
a/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
+++
b/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
@@ -86,7 +86,7 @@ public class VanillaCompileWorkerTest extends
CompileWorkerTestBase {
}
public void testRepair2() throws Exception {
- ParsingOutput result =
runIndexing(Arrays.asList(compileTuple("test/Test4.java", "package test; public
class Test4 { @Undef public void test1() { } @Deprecated @Undef public void
test2() { } }")),
+ ParsingOutput result =
runIndexing(Arrays.asList(compileTuple("test/Test4.java", "package test; @Undef
public class Test4 { @Undef public void test1() { } @Deprecated @Undef public
void test2() { } }")),
Arrays.asList());
assertFalse(result.lowMemory);
@@ -173,6 +173,24 @@ public class VanillaCompileWorkerTest extends
CompileWorkerTestBase {
//TODO: check file content!!!
}
+ public void testErasureField() throws Exception {
+ ParsingOutput result =
runIndexing(Arrays.asList(compileTuple("test/Test4.java", "package test; public
class Test4<T> { void test(Test4<Undef> t2, Undef t1) { } static void t(Test4
raw) { raw.test(null, null); } }")),
+ 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/Test4.sig")),
+ createdFiles);
+ //TODO: check file content!!!
+ }
+
public void testModuleInfoAndSourceLevel8() throws Exception {
setSourceLevel("8");
--
To stop receiving notification emails like this one, please contact
[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