--- a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Tue Apr 22 19:52:15 2014 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Tue Apr 22 17:07:54 2014 -0400
@@ -493,10 +493,26 @@
return;
}
+ DiagnosticPosition prevLintPos = deferredLintHandler.immediate();
+ Lint prevLint = chk.setLint(lint);
+
+ try {
+ // Import-on-demand java.lang.
+ importAll(tree.pos, syms.enterPackage(names.java_lang), env);
+
+ // Process the package def and all import clauses.
+ memberEnter(tree.defs, env);
+ } finally {
+ chk.setLint(prevLint);
+ deferredLintHandler.setPos(prevLintPos);
+ }
+ }
+
+ public void visitPackageDef(JCPackageDecl tree) {
// check that no class exists with same fully qualified name as
// toplevel package
if (checkClash && tree.pid != null) {
- Symbol p = tree.packge;
+ Symbol p = env.toplevel.packge;
while (p.owner != syms.rootPackage) {
p.owner.complete(); // enter all class members of p
if (syms.classes.get(p.getQualifiedName()) != null) {
@@ -507,23 +523,8 @@
p = p.owner;
}
}
-
// process package annotations
- annotate.annotateLater(tree.packageAnnotations, env, tree.packge, null);
-
- DiagnosticPosition prevLintPos = deferredLintHandler.immediate();
- Lint prevLint = chk.setLint(lint);
-
- try {
- // Import-on-demand java.lang.
- importAll(tree.pos, syms.enterPackage(names.java_lang), env);
-
- // Process all import clauses.
- memberEnter(tree.defs, env);
- } finally {
- chk.setLint(prevLint);
- deferredLintHandler.setPos(prevLintPos);
- }
+ annotate.annotateLater(tree.annotations, env, env.toplevel.packge, null);
}
// process the non-static imports and the static imports of types.