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