< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/code/DeferredCompletionFailureHandler.java

Print this page
rev 54093 : 8177068: incomplete classpath causes NPE in Flow
Summary: Undo completions that failed during speculative attribution, so that the appropriate CompletionFailures are thrown again and properly reported.
Reviewed-by: vromero

*** 84,93 **** --- 84,113 ---- public void uninstall() { class2Flip.values().forEach(f -> f.flip()); } }; + public final Handler speculativeCodeHandler = new Handler() { + private final Map<ClassSymbol, FlipSymbolDescription> class2Flip = new HashMap<>(); + + public void install() { + } + public void handleAPICompletionFailure(CompletionFailure cf) { + throw cf; + } + public void classSymbolCompleteFailed(ClassSymbol sym, Completer origCompleter) { + class2Flip.put(sym, new FlipSymbolDescription(sym, new DeferredCompleter(origCompleter))); + } + public void classSymbolRemoved(ClassSymbol sym) { + class2Flip.remove(sym); + } + public void uninstall() { + class2Flip.values().forEach(f -> f.flip()); + class2Flip.clear(); + } + }; + public final Handler javacCodeHandler = new Handler() { public void install() { } public void handleAPICompletionFailure(CompletionFailure cf) { throw cf;
< prev index next >