diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java index 542e3d748d5596..7a9ef80c8bc72e 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/Package.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java @@ -302,7 +302,7 @@ public PackageIdentifier getPackageIdentifier() { * may not be unique! */ public String getName() { - return metadata.packageIdentifier().getPackageFragment().getPathString(); + return metadata.getName(); } /** Like {@link #getName}, but has type {@code PathFragment}. */ @@ -1029,6 +1029,9 @@ default boolean precomputeTransitiveLoads() { private final SymbolGenerator symbolGenerator; + // Same as pkg.metadata. + private final Metadata metadata; + /** * The output instance for this builder. Needs to be instantiated and available with name info * throughout initialization. All other settings are applied during {@link #build}. See {@link @@ -1310,7 +1313,7 @@ private Builder( this.workspaceName = Preconditions.checkNotNull(workspaceName); - Metadata metadata = + this.metadata = new Metadata( /* packageIdentifier= */ id, /* buildFilename= */ filename, @@ -1335,7 +1338,7 @@ private Builder( this.precomputeTransitiveLoads = packageSettings.precomputeTransitiveLoads(); this.noImplicitFileExport = noImplicitFileExport; this.labelConverter = new LabelConverter(id, repositoryMapping); - if (pkg.getName().startsWith("javatests/")) { + if (metadata.getName().startsWith("javatests/")) { mergePackageArgsFrom(PackageArgs.builder().setDefaultTestOnly(true)); } this.cpuBoundSemaphore = cpuBoundSemaphore; @@ -1507,7 +1510,7 @@ public static Builder fromOrFailDisallowWorkspace(StarlarkThread thread, String } PackageIdentifier getPackageIdentifier() { - return pkg.getPackageIdentifier(); + return metadata.packageIdentifier(); } /** @@ -1515,7 +1518,7 @@ PackageIdentifier getPackageIdentifier() { * rules (returns {@code true}). */ public boolean isRepoRulePackage() { - return pkg.isRepoRulePackage(); + return metadata.isRepoRulePackage(); } /** @@ -1534,7 +1537,7 @@ String getWorkspaceName() { * this is the name of the module hosting the extension. */ Optional getAssociatedModuleName() { - return pkg.metadata.associatedModuleName(); + return metadata.associatedModuleName(); } /** @@ -1543,7 +1546,7 @@ Optional getAssociatedModuleName() { * this is the version of the module hosting the extension. */ Optional getAssociatedModuleVersion() { - return pkg.metadata.associatedModuleVersion(); + return metadata.associatedModuleVersion(); } /** @@ -1611,7 +1614,7 @@ RepositoryMapping getRepositoryMappingFor(RepositoryName name) { } RootedPath getFilename() { - return pkg.metadata.buildFilename(); + return metadata.buildFilename(); } /** Returns the {@link StoredEventHandler} associated with this builder. */ @@ -1905,7 +1908,7 @@ InputFile createInputFile(String targetName, Location location) throws NameConfl inputFile = new InputFile(pkg, createLabel(targetName), location); } catch (LabelSyntaxException e) { throw new IllegalArgumentException( - "FileTarget in package " + pkg.getName() + " has illegal name: " + targetName, e); + "FileTarget in package " + metadata.getName() + " has illegal name: " + targetName, e); } checkTargetName(inputFile); @@ -1931,7 +1934,7 @@ void setVisibilityAndLicense(InputFile inputFile, RuleVisibility visibility, Lic "Can't set visibility for nonexistent FileTarget " + filename + " in package " - + pkg.getName() + + metadata.getName() + "."); } if (!((InputFile) cacheInstance).isVisibilitySpecified() @@ -1949,7 +1952,7 @@ void setVisibilityAndLicense(InputFile inputFile, RuleVisibility visibility, Lic * @throws LabelSyntaxException if the {@code targetName} is invalid */ Label createLabel(String targetName) throws LabelSyntaxException { - return Label.create(pkg.getPackageIdentifier(), targetName); + return Label.create(metadata.packageIdentifier(), targetName); } /** Adds a package group to the package. */ @@ -2353,7 +2356,7 @@ private Builder beforeBuild(boolean discoverAssumedInputFiles) throws NoSuchPack List