changeset 49197 | cc2673fa8c20 |
parent 47216 | 71c04702a3d5 |
child 50712 | df7094f72869 |
49196:82a3005cb038 | 49197:cc2673fa8c20 |
---|---|
48 import java.util.stream.Collectors; |
48 import java.util.stream.Collectors; |
49 import java.util.stream.Stream; |
49 import java.util.stream.Stream; |
50 |
50 |
51 import com.sun.tools.javac.api.JavacTaskImpl; |
51 import com.sun.tools.javac.api.JavacTaskImpl; |
52 import com.sun.tools.javac.api.JavacTool; |
52 import com.sun.tools.javac.api.JavacTool; |
53 import com.sun.tools.javac.code.DeferredCompletionFailureHandler; |
|
53 import com.sun.tools.javac.code.Flags; |
54 import com.sun.tools.javac.code.Flags; |
54 import com.sun.tools.javac.code.Symbol.ClassSymbol; |
55 import com.sun.tools.javac.code.Symbol.ClassSymbol; |
55 import com.sun.tools.javac.code.Symbol.CompletionFailure; |
56 import com.sun.tools.javac.code.Symbol.CompletionFailure; |
56 import com.sun.tools.javac.code.Symtab; |
57 import com.sun.tools.javac.code.Symtab; |
57 import com.sun.tools.javac.jvm.ClassReader; |
58 import com.sun.tools.javac.jvm.ClassReader; |
188 JavacTool tool = JavacTool.create(); |
189 JavacTool tool = JavacTool.create(); |
189 JavacTaskImpl task = (JavacTaskImpl) tool.getTask(null, null, null, List.of("-classpath", test.toString(), "-XDblockClass=" + flatName(missing)), null, null, context); |
190 JavacTaskImpl task = (JavacTaskImpl) tool.getTask(null, null, null, List.of("-classpath", test.toString(), "-XDblockClass=" + flatName(missing)), null, null, context); |
190 Symtab syms = Symtab.instance(context); |
191 Symtab syms = Symtab.instance(context); |
191 Names names = Names.instance(context); |
192 Names names = Names.instance(context); |
192 |
193 |
194 DeferredCompletionFailureHandler dcfh = DeferredCompletionFailureHandler.instance(context); |
|
195 |
|
196 dcfh.setHandler(dcfh.javacCodeHandler); |
|
197 |
|
193 task.getElements().getTypeElement("java.lang.Object"); |
198 task.getElements().getTypeElement("java.lang.Object"); |
194 |
199 |
195 if (!badClassFile) { |
200 if (!badClassFile) { |
196 //to ensure the same paths taken in ClassFinder.completeEnclosing in case the file is missing: |
201 //to ensure the same paths taken in ClassFinder.completeEnclosing in case the file is missing: |
197 syms.enterClass(syms.unnamedModule, names.fromString(flatName(missing))); |
202 syms.enterClass(syms.unnamedModule, names.fromString(flatName(missing))); |