< prev index next > test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInAnonymousClassTest.java
Print this page
/*
* @test
* @bug 8042251 8062373
* @summary Testing InnerClasses_attribute of inner classes in anonymous class.
* @library /tools/lib /tools/javac/lib ../lib
+ * @enablePreview
* @modules jdk.compiler/com.sun.tools.javac.api
* jdk.compiler/com.sun.tools.javac.main
* java.base/jdk.internal.classfile.impl
+ * @enablePreview
* @build toolbox.ToolBox InMemoryFileManager TestResult TestBase
* @build InnerClassesTestBase
* @run main InnerClassesInAnonymousClassTest
*/
}
@Override
public List<TestCase> generateTestCases() {
currentClassType = ClassType.CLASS;
! setPrefix("class Anonymous {} {new Anonymous() {");
List<TestCase> sources = super.generateTestCases();
currentClassType = ClassType.INTERFACE;
setPrefix("interface Anonymous {} {new Anonymous() {");
sources.addAll(super.generateTestCases());
}
@Override
public List<TestCase> generateTestCases() {
currentClassType = ClassType.CLASS;
! setPrefix("class Anonymous { int f; } {new Anonymous() {"); // impose identity to make testing predictable.
List<TestCase> sources = super.generateTestCases();
currentClassType = ClassType.INTERFACE;
setPrefix("interface Anonymous {} {new Anonymous() {");
sources.addAll(super.generateTestCases());
@Override
public void getAdditionalFlags(Map<String, Set<String>> class2Flags, ClassType type, Modifier... flags) {
super.getAdditionalFlags(class2Flags, type, flags);
class2Flags.put("Anonymous", getFlags(currentClassType, Arrays.asList(flags)));
! class2Flags.put("1", new HashSet<>() {});
}
}
@Override
public void getAdditionalFlags(Map<String, Set<String>> class2Flags, ClassType type, Modifier... flags) {
super.getAdditionalFlags(class2Flags, type, flags);
class2Flags.put("Anonymous", getFlags(currentClassType, Arrays.asList(flags)));
! class2Flags.put("1", new HashSet<>(Arrays.asList("ACC_IDENTITY")));
}
}
< prev index next >