< prev index next >
test/tools/javac/processing/model/element/TestPackageElement.java
Print this page
@@ -21,20 +21,22 @@
* questions.
*/
/*
* @test
- * @bug 6449798 6399404
+ * @bug 6449798 6399404 8173776
* @summary Test basic workings of PackageElement
* @author Joseph D. Darcy
* @library /tools/javac/lib
* @modules java.compiler
* jdk.compiler
* @build JavacTestingAbstractProcessor TestPackageElement
* @compile -processor TestPackageElement -proc:only TestPackageElement.java
+ * @compile -processor TestPackageElement -proc:only --release 8 TestPackageElement.java
*/
+import java.util.Objects;
import java.util.Set;
import javax.annotation.processing.*;
import javax.lang.model.SourceVersion;
import static javax.lang.model.SourceVersion.*;
import javax.lang.model.element.*;
@@ -65,9 +67,24 @@
throw new RuntimeException("The isUnnamed method on the unnamed package returned false!");
PackageElement javaLang = eltUtils.getPackageElement("java.lang");
if (javaLang.isUnnamed())
throw new RuntimeException("Package java.lang is unnamed!");
+
+ testEnclosingElement(javaLang);
}
return true;
}
+
+ void testEnclosingElement(PackageElement javaLang) {
+ SourceVersion version = processingEnv.getSourceVersion();
+ Element enclosing = javaLang.getEnclosingElement();
+ Element expectedEnclosing =
+ (version.compareTo(RELEASE_9) < 0) ? // No modules
+ null :
+ eltUtils.getModuleElement("java.base");
+
+ if (!Objects.equals(enclosing, expectedEnclosing))
+ throw new RuntimeException("Unexpected enclosing element under source version " +
+ version);
+ }
}
< prev index next >