90 runTest("class A {\n" +
91 " enum AInner implements Runnable {\n" +
92 " A {\n" +
93 " public void run() {}\n" +
94 " };\n" +
95 " }\n" +
96 " AInner aInner() {\n" +
97 " return null;\n" +
98 " }\n" +
99 "}\n",
100 "class B {\n" +
101 " void test(A a) {;\n" +
102 " System.err.println(a.aInner().toString());\n" +
103 " };\n" +
104 "}");
105 }
106
107 void runTest(String aJava, String bJava) throws Exception {
108 try (JavaFileManager fm = ToolProvider.getSystemJavaCompiler().getStandardFileManager(null, null, null)) {
109 ToolBox tb = new ToolBox();
110 ToolBox.MemoryFileManager memoryFM1 = new ToolBox.MemoryFileManager(fm);
111 new JavacTask(tb).fileManager(memoryFM1)
112 .sources(aJava, bJava)
113 .run();
114 ToolBox.MemoryFileManager memoryFM2 = new ToolBox.MemoryFileManager(fm);
115 new JavacTask(tb).fileManager(memoryFM2)
116 .sources(bJava, aJava)
117 .run();
118
119 Assert.check(Arrays.equals(memoryFM1.getFileBytes(StandardLocation.CLASS_OUTPUT, "B"),
120 memoryFM2.getFileBytes(StandardLocation.CLASS_OUTPUT, "B")));
121 }
122 }
123 }
|
90 runTest("class A {\n" +
91 " enum AInner implements Runnable {\n" +
92 " A {\n" +
93 " public void run() {}\n" +
94 " };\n" +
95 " }\n" +
96 " AInner aInner() {\n" +
97 " return null;\n" +
98 " }\n" +
99 "}\n",
100 "class B {\n" +
101 " void test(A a) {;\n" +
102 " System.err.println(a.aInner().toString());\n" +
103 " };\n" +
104 "}");
105 }
106
107 void runTest(String aJava, String bJava) throws Exception {
108 try (JavaFileManager fm = ToolProvider.getSystemJavaCompiler().getStandardFileManager(null, null, null)) {
109 ToolBox tb = new ToolBox();
110 try (var memoryFM1 = new ToolBox.MemoryFileManager(fm, false);
111 var memoryFM2 = new ToolBox.MemoryFileManager(fm, false)) {
112 new JavacTask(tb).fileManager(memoryFM1)
113 .sources(aJava, bJava)
114 .run();
115 new JavacTask(tb).fileManager(memoryFM2)
116 .sources(bJava, aJava)
117 .run();
118
119 Assert.check(Arrays.equals(memoryFM1.getFileBytes(StandardLocation.CLASS_OUTPUT, "B"),
120 memoryFM2.getFileBytes(StandardLocation.CLASS_OUTPUT, "B")));
121 }
122 }
123 }
124 }
|