< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java
Print this page
rev 48841 : [mq]: 8187950
@@ -309,10 +309,12 @@
/** The diagnostics factory
*/
protected JCDiagnostic.Factory diags;
+ protected DeferredCompletionFailureHandler dcfh;
+
/** The type eraser.
*/
protected TransTypes transTypes;
/** The syntactic sugar desweetener.
@@ -414,10 +416,11 @@
types = Types.instance(context);
taskListener = MultiTaskListener.instance(context);
modules = Modules.instance(context);
moduleFinder = ModuleFinder.instance(context);
diags = Factory.instance(context);
+ dcfh = DeferredCompletionFailureHandler.instance(context);
finder.sourceCompleter = sourceCompleter;
modules.findPackageInFile = this::findPackageInFile;
moduleFinder.moduleNameFromSourceReader = this::readModuleName;
@@ -797,11 +800,11 @@
*/
public void readSourceFile(JCCompilationUnit tree, ClassSymbol c) throws CompletionFailure {
if (completionFailureName == c.fullname) {
JCDiagnostic msg =
diagFactory.fragment(Fragments.UserSelectedCompletionFailure);
- throw new CompletionFailure(c, msg);
+ throw new CompletionFailure(c, msg, dcfh);
}
JavaFileObject filename = c.classfile;
JavaFileObject prev = log.useSource(filename);
if (tree == null) {
@@ -825,11 +828,11 @@
// complete a specific symbol, throw CompletionFailure.
// Note that if module resolution failed, we may not even
// have enough modules available to access java.lang, and
// so risk getting FatalError("no.java.lang") from MemberEnter.
if (!modules.enter(List.of(tree), c)) {
- throw new CompletionFailure(c, diags.fragment(Fragments.CantResolveModules));
+ throw new CompletionFailure(c, diags.fragment(Fragments.CantResolveModules), dcfh);
}
enter.complete(List.of(tree), c);
if (!taskListener.isEmpty()) {
@@ -846,22 +849,22 @@
JavaFileObject.Kind.SOURCE);
if (isModuleInfo) {
if (enter.getEnv(tree.modle) == null) {
JCDiagnostic diag =
diagFactory.fragment(Fragments.FileDoesNotContainModule);
- throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory);
+ throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory, dcfh);
}
} else if (isPkgInfo) {
if (enter.getEnv(tree.packge) == null) {
JCDiagnostic diag =
diagFactory.fragment(Fragments.FileDoesNotContainPackage(c.location()));
- throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory);
+ throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory, dcfh);
}
} else {
JCDiagnostic diag =
diagFactory.fragment(Fragments.FileDoesntContainClass(c.getQualifiedName()));
- throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory);
+ throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory, dcfh);
}
}
implicitSourceFilesRead = true;
}
< prev index next >