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) {
|