langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java
changeset 45504 ea7475564d07
parent 43141 7ea6578a9110
equal deleted inserted replaced
45503:d23ae2d67a5d 45504:ea7475564d07
    42 import com.sun.tools.javac.util.*;
    42 import com.sun.tools.javac.util.*;
    43 import com.sun.tools.javac.util.DefinedBy.Api;
    43 import com.sun.tools.javac.util.DefinedBy.Api;
    44 
    44 
    45 import com.sun.tools.javac.code.Symbol.*;
    45 import com.sun.tools.javac.code.Symbol.*;
    46 import com.sun.tools.javac.code.Type.*;
    46 import com.sun.tools.javac.code.Type.*;
       
    47 import com.sun.tools.javac.resources.CompilerProperties.Errors;
    47 import com.sun.tools.javac.tree.JCTree.*;
    48 import com.sun.tools.javac.tree.JCTree.*;
    48 
    49 
    49 import static com.sun.tools.javac.code.Flags.*;
    50 import static com.sun.tools.javac.code.Flags.*;
    50 import static com.sun.tools.javac.code.Flags.ANNOTATION;
    51 import static com.sun.tools.javac.code.Flags.ANNOTATION;
    51 import static com.sun.tools.javac.code.Scope.LookupKind.NON_RECURSIVE;
    52 import static com.sun.tools.javac.code.Scope.LookupKind.NON_RECURSIVE;
    52 import static com.sun.tools.javac.code.Kinds.Kind.*;
    53 import static com.sun.tools.javac.code.Kinds.Kind.*;
    53 import static com.sun.tools.javac.code.TypeTag.CLASS;
    54 import static com.sun.tools.javac.code.TypeTag.CLASS;
    54 import static com.sun.tools.javac.code.TypeTag.ERROR;
    55 import static com.sun.tools.javac.code.TypeTag.ERROR;
       
    56 import com.sun.tools.javac.resources.CompilerProperties.Fragments;
    55 import static com.sun.tools.javac.tree.JCTree.Tag.*;
    57 import static com.sun.tools.javac.tree.JCTree.Tag.*;
    56 
    58 
    57 import com.sun.tools.javac.util.Dependencies.CompletionCause;
    59 import com.sun.tools.javac.util.Dependencies.CompletionCause;
    58 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
    60 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
    59 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
    61 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
   337                                          chk.importAccessible(sym, packge);
   339                                          chk.importAccessible(sym, packge);
   338 
   340 
   339                 // Import-on-demand java.lang.
   341                 // Import-on-demand java.lang.
   340                 PackageSymbol javaLang = syms.enterPackage(syms.java_base, names.java_lang);
   342                 PackageSymbol javaLang = syms.enterPackage(syms.java_base, names.java_lang);
   341                 if (javaLang.members().isEmpty() && !javaLang.exists())
   343                 if (javaLang.members().isEmpty() && !javaLang.exists())
   342                     throw new FatalError(diags.fragment("fatal.err.no.java.lang"));
   344                     throw new FatalError(diags.fragment(Fragments.FatalErrNoJavaLang));
   343                 importAll(make.at(tree.pos()).Import(make.QualIdent(javaLang), false), javaLang, env);
   345                 importAll(make.at(tree.pos()).Import(make.QualIdent(javaLang), false), javaLang, env);
   344 
   346 
   345                 JCModuleDecl decl = tree.getModuleDecl();
   347                 JCModuleDecl decl = tree.getModuleDecl();
   346 
   348 
   347                 // Process the package def and all import clauses.
   349                 // Process the package def and all import clauses.
   376                     p.owner.complete(); // enter all class members of p
   378                     p.owner.complete(); // enter all class members of p
   377                     //need to lookup the owning module/package:
   379                     //need to lookup the owning module/package:
   378                     PackageSymbol pack = syms.lookupPackage(env.toplevel.modle, p.owner.getQualifiedName());
   380                     PackageSymbol pack = syms.lookupPackage(env.toplevel.modle, p.owner.getQualifiedName());
   379                     if (syms.getClass(pack.modle, p.getQualifiedName()) != null) {
   381                     if (syms.getClass(pack.modle, p.getQualifiedName()) != null) {
   380                         log.error(tree.pos,
   382                         log.error(tree.pos,
   381                                   "pkg.clashes.with.class.of.same.name",
   383                                   Errors.PkgClashesWithClassOfSameName(p));
   382                                   p);
       
   383                     }
   384                     }
   384                     p = p.owner;
   385                     p = p.owner;
   385                 }
   386                 }
   386             }
   387             }
   387             // process package annotations
   388             // process package annotations
   469         private void importNamedStatic(final JCImport imp,
   470         private void importNamedStatic(final JCImport imp,
   470                                        final TypeSymbol tsym,
   471                                        final TypeSymbol tsym,
   471                                        final Name name,
   472                                        final Name name,
   472                                        final Env<AttrContext> env) {
   473                                        final Env<AttrContext> env) {
   473             if (tsym.kind != TYP) {
   474             if (tsym.kind != TYP) {
   474                 log.error(DiagnosticFlag.RECOVERABLE, imp.pos(), "static.imp.only.classes.and.interfaces");
   475                 log.error(DiagnosticFlag.RECOVERABLE, imp.pos(), Errors.StaticImpOnlyClassesAndInterfaces);
   475                 return;
   476                 return;
   476             }
   477             }
   477 
   478 
   478             final NamedImportScope toScope = env.toplevel.namedImportScope;
   479             final NamedImportScope toScope = env.toplevel.namedImportScope;
   479             final Scope originMembers = tsym.members();
   480             final Scope originMembers = tsym.members();
   829             // but admit classes in the unnamed package which have the same
   830             // but admit classes in the unnamed package which have the same
   830             // name as a top-level package.
   831             // name as a top-level package.
   831             if (checkClash &&
   832             if (checkClash &&
   832                 sym.owner.kind == PCK && sym.owner != env.toplevel.modle.unnamedPackage &&
   833                 sym.owner.kind == PCK && sym.owner != env.toplevel.modle.unnamedPackage &&
   833                 syms.packageExists(env.toplevel.modle, sym.fullname)) {
   834                 syms.packageExists(env.toplevel.modle, sym.fullname)) {
   834                 log.error(tree.pos, "clash.with.pkg.of.same.name", Kinds.kindName(sym), sym);
   835                 log.error(tree.pos, Errors.ClashWithPkgOfSameName(Kinds.kindName(sym),sym));
   835             }
   836             }
   836             if (sym.owner.kind == PCK && (sym.flags_field & PUBLIC) == 0 &&
   837             if (sym.owner.kind == PCK && (sym.flags_field & PUBLIC) == 0 &&
   837                 !env.toplevel.sourcefile.isNameCompatible(sym.name.toString(),JavaFileObject.Kind.SOURCE)) {
   838                 !env.toplevel.sourcefile.isNameCompatible(sym.name.toString(),JavaFileObject.Kind.SOURCE)) {
   838                 sym.flags_field |= AUXILIARY;
   839                 sym.flags_field |= AUXILIARY;
   839             }
   840             }