< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java

Print this page
rev 3340 : 8154283: Check for clash between package and class not working when package in a different module
Summary: Looking for any visible package when checking for package-class clash
Reviewed-by: TBD


 681      *  and enter in `classes' unless already there.
 682      */
 683     public ClassSymbol enterClass(ModuleSymbol msym, Name flatname) {
 684         Assert.checkNonNull(msym);
 685         PackageSymbol ps = lookupPackage(msym, Convert.packagePart(flatname));
 686         Assert.checkNonNull(ps);
 687         Assert.checkNonNull(ps.modle);
 688         ClassSymbol c = getClass(ps.modle, flatname);
 689         if (c == null) {
 690             c = defineClass(Convert.shortName(flatname), ps);
 691             doEnterClass(ps.modle, c);
 692             return c;
 693         } else
 694             return c;
 695     }
 696 
 697     /** Check to see if a package exists, given its fully qualified name.
 698      */
 699     public boolean packageExists(ModuleSymbol msym, Name fullname) {
 700         Assert.checkNonNull(msym);
 701         return enterPackage(msym, fullname).exists();
 702     }
 703 
 704     /** Make a package, given its fully qualified name.
 705      */
 706     public PackageSymbol enterPackage(ModuleSymbol currModule, Name fullname) {
 707         Assert.checkNonNull(currModule);
 708         PackageSymbol p = getPackage(currModule, fullname);
 709         if (p == null) {
 710             Assert.check(!fullname.isEmpty(), () -> "rootPackage missing!; currModule: " + currModule);
 711             p = new PackageSymbol(
 712                     Convert.shortName(fullname),
 713                     enterPackage(currModule, Convert.packagePart(fullname)));
 714             p.completer = initialCompleter;
 715             p.modle = currModule;
 716             doEnterPackage(currModule, p);
 717         }
 718         return p;
 719     }
 720 
 721     private void doEnterPackage(ModuleSymbol msym, PackageSymbol pack) {




 681      *  and enter in `classes' unless already there.
 682      */
 683     public ClassSymbol enterClass(ModuleSymbol msym, Name flatname) {
 684         Assert.checkNonNull(msym);
 685         PackageSymbol ps = lookupPackage(msym, Convert.packagePart(flatname));
 686         Assert.checkNonNull(ps);
 687         Assert.checkNonNull(ps.modle);
 688         ClassSymbol c = getClass(ps.modle, flatname);
 689         if (c == null) {
 690             c = defineClass(Convert.shortName(flatname), ps);
 691             doEnterClass(ps.modle, c);
 692             return c;
 693         } else
 694             return c;
 695     }
 696 
 697     /** Check to see if a package exists, given its fully qualified name.
 698      */
 699     public boolean packageExists(ModuleSymbol msym, Name fullname) {
 700         Assert.checkNonNull(msym);
 701         return lookupPackage(msym, fullname).exists();
 702     }
 703 
 704     /** Make a package, given its fully qualified name.
 705      */
 706     public PackageSymbol enterPackage(ModuleSymbol currModule, Name fullname) {
 707         Assert.checkNonNull(currModule);
 708         PackageSymbol p = getPackage(currModule, fullname);
 709         if (p == null) {
 710             Assert.check(!fullname.isEmpty(), () -> "rootPackage missing!; currModule: " + currModule);
 711             p = new PackageSymbol(
 712                     Convert.shortName(fullname),
 713                     enterPackage(currModule, Convert.packagePart(fullname)));
 714             p.completer = initialCompleter;
 715             p.modle = currModule;
 716             doEnterPackage(currModule, p);
 717         }
 718         return p;
 719     }
 720 
 721     private void doEnterPackage(ModuleSymbol msym, PackageSymbol pack) {


< prev index next >