Bug 470665 - Adding unit test
Change-Id: I6c13700ff314902a4b71d841b77ef3a50dd87526
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
index 9b8dcfa..a3b1733 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
@@ -11596,4 +11596,46 @@
" )\n";
checkClassFile("Test", source, expectedOutput, ClassFileBytesDisassembler.DETAILED | ClassFileBytesDisassembler.COMPACT);
}
+//https://bugs.eclipse.org/bugs/show_bug.cgi?id=470665
+public void testBug470665() throws Exception {
+ if (this.complianceLevel <= ClassFileConstants.JDK1_7) {
+ return; // Enough to run in the last two levels!
+ }
+ boolean apt = this.enableAPT;
+ String[] sources = new String[] {
+ "A.java",
+ "public final class A {\n" +
+ " String myString;\n" +
+ " public interface B {\n" +
+ " void test();\n" +
+ " }\n" +
+ " private final B b = new B() {\n" +
+ " @Override\n" +
+ " public void test() {}\n" +
+ " }\n" +
+ "};\n" +
+ "}",
+ "B.java",
+ "public class B {\n" +
+ " private static class X {\n" +
+ " static final Object instance1;\n" +
+ " static {\n" +
+ " try {\n" +
+ " instance1 = new Object();\n" +
+ " } catch (Throwable e) {\n" +
+ " throw new AssertionError(e);\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ " X x = new X();\n" +
+ " Object o = X.instance1;\n" +
+ "}"
+ };
+ try {
+ this.enableAPT = true;
+ runConformTest(sources);
+ } finally {
+ this.enableAPT = apt;
+ }
+}
}