< prev index next >
test/langtools/tools/javac/processing/model/completionfailure/MissingClassFile.java
Print this page
rev 48842 : imported patch 8187950-ext
@@ -42,10 +42,11 @@
import javax.annotation.processing.*;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.*;
import javax.lang.model.type.DeclaredType;
+import javax.lang.model.type.ErrorType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
import javax.tools.JavaCompiler;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
@@ -54,10 +55,11 @@
import toolbox.Task.*;
import com.sun.source.util.TaskEvent;
import com.sun.source.util.TaskListener;
+import com.sun.tools.javac.api.JavacTrees;
@SupportedAnnotationTypes("*")
public class MissingClassFile {
ToolBox tb = new ToolBox();
@@ -155,14 +157,17 @@
.getTypeElement(t.getElements()
.getModuleElement(""),
"pkg.A");
TypeMirror superclass = a.getSuperclass();
verifyTypeMirror(t, superclass);
- assertEquals(TypeKind.DECLARED, superclass.getKind());
+ assertEquals(TypeKind.ERROR, superclass.getKind());
Element superclassEl = ((DeclaredType) superclass).asElement();
assertEquals(ElementKind.CLASS, superclassEl.getKind());
assertEquals(TypeKind.ERROR, superclassEl.asType().getKind());
+ TypeMirror originalType = JavacTrees.instance(t).getOriginalType((ErrorType) superclass);
+ assertEquals(TypeKind.DECLARED, originalType.getKind());
+ assertEquals(superclassEl, ((DeclaredType) originalType).asElement());
});
doTestCombo("interface Test {" +
"}",
"package pkg;" +
"public class A implements # {" +
@@ -171,14 +176,17 @@
"# a = null; a.toString();",
(fqn, t) -> {
TypeElement a = t.getElements().getTypeElement("pkg.A");
TypeMirror superintf = a.getInterfaces().get(0);
verifyTypeMirror(t, superintf);
- assertEquals(TypeKind.DECLARED, superintf.getKind());
+ assertEquals(TypeKind.ERROR, superintf.getKind());
Element superintfEl = ((DeclaredType) superintf).asElement();
//superintfEl.getKind() may be either CLASS or INTERFACE, depending on which class is missing
assertEquals(TypeKind.ERROR, superintfEl.asType().getKind());
+ TypeMirror originalType = JavacTrees.instance(t).getOriginalType((ErrorType) superintf);
+ assertEquals(TypeKind.DECLARED, originalType.getKind());
+ assertEquals(superintfEl, ((DeclaredType) originalType).asElement());
});
doTestCombo("class Test {" +
"}",
"package pkg;" +
"public class A extends # {" +
< prev index next >