< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java
Print this page
rev 48841 : imported patch 8187950
*** 309,318 ****
--- 309,320 ----
/** The diagnostics factory
*/
protected JCDiagnostic.Factory diags;
+ protected DeferredCompletionFailureHandler dcfh;
+
/** The type eraser.
*/
protected TransTypes transTypes;
/** The syntactic sugar desweetener.
*** 414,423 ****
--- 416,426 ----
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,807 ****
*/
public void readSourceFile(JCCompilationUnit tree, ClassSymbol c) throws CompletionFailure {
if (completionFailureName == c.fullname) {
JCDiagnostic msg =
diagFactory.fragment(Fragments.UserSelectedCompletionFailure);
! throw new CompletionFailure(c, msg);
}
JavaFileObject filename = c.classfile;
JavaFileObject prev = log.useSource(filename);
if (tree == null) {
--- 800,810 ----
*/
public void readSourceFile(JCCompilationUnit tree, ClassSymbol c) throws CompletionFailure {
if (completionFailureName == c.fullname) {
JCDiagnostic msg =
diagFactory.fragment(Fragments.UserSelectedCompletionFailure);
! throw new CompletionFailure(c, msg, dcfh);
}
JavaFileObject filename = c.classfile;
JavaFileObject prev = log.useSource(filename);
if (tree == null) {
*** 825,835 ****
// 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));
}
enter.complete(List.of(tree), c);
if (!taskListener.isEmpty()) {
--- 828,838 ----
// 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), dcfh);
}
enter.complete(List.of(tree), c);
if (!taskListener.isEmpty()) {
*** 846,867 ****
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);
}
} 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);
}
} else {
JCDiagnostic diag =
diagFactory.fragment(Fragments.FileDoesntContainClass(c.getQualifiedName()));
! throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory);
}
}
implicitSourceFilesRead = true;
}
--- 849,870 ----
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, 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, dcfh);
}
} else {
JCDiagnostic diag =
diagFactory.fragment(Fragments.FileDoesntContainClass(c.getQualifiedName()));
! throw new ClassFinder.BadClassFile(c, filename, diag, diagFactory, dcfh);
}
}
implicitSourceFilesRead = true;
}
< prev index next >