--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Wed Jun 24 15:15:56 2015 -0700
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Sun Jun 28 12:58:24 2015 +0530
@@ -37,6 +37,7 @@
import com.sun.tools.javac.resources.CompilerProperties.Fragments;
import com.sun.tools.javac.tree.*;
import com.sun.tools.javac.util.*;
+import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
import com.sun.tools.javac.util.List;
@@ -3612,6 +3613,18 @@
}
}
+ // Check that packages imported are in scope (JLS 7.4.3, 6.3, 6.5.3.1, 6.5.3.2)
+ public void checkImportedPackagesObservable(final JCCompilationUnit toplevel) {
+ for (JCImport imp : toplevel.getImports()) {
+ if (!imp.staticImport && TreeInfo.name(imp.qualid) == names.asterisk) {
+ TypeSymbol tsym = ((JCFieldAccess)imp.qualid).selected.type.tsym;
+ if (tsym.kind == PCK && tsym.members().isEmpty() && !tsym.exists()) {
+ log.error(DiagnosticFlag.RESOLVE_ERROR, imp.pos, "doesnt.exist", tsym);
+ }
+ }
+ }
+ }
+
private boolean checkTypeContainsImportableElement(TypeSymbol tsym, TypeSymbol origin, PackageSymbol packge, Name name, Set<Symbol> processed) {
if (tsym == null || !processed.add(tsym))
return false;