From 31c6a6188b46008308f6dc2d8af965a5f6c352fe Mon Sep 17 00:00:00 2001 From: carmi Date: Wed, 17 May 2017 22:56:19 +0200 Subject: Expose the target map from Package. This doesn't really expose new information, because one can iterate over the existing getTargets() and recreate the map. Moreover, the map is immutable, so there's no risk in returning it to the user. RELNOTES: None PiperOrigin-RevId: 156349797 --- .../com/google/devtools/build/lib/packages/Package.java | 17 ++++++----------- .../build/lib/pkgcache/TargetPatternResolverUtil.java | 2 +- .../build/lib/query2/output/PreciseAspectResolver.java | 2 +- .../build/lib/skyframe/SkylarkFileContentHashTests.java | 2 +- .../testutil/BazelPackageBuilderHelperForTesting.java | 5 +++-- .../devtools/build/workspace/WorkspaceResolver.java | 2 +- 6 files changed, 13 insertions(+), 17 deletions(-) (limited to 'src') 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 1556dcb141..3e0ec37f1e 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 @@ -114,10 +114,8 @@ public class Package { */ private MakeEnvironment makeEnv; - /** - * The collection of all targets defined in this package, indexed by name. - */ - protected Map targets; + /** The collection of all targets defined in this package, indexed by name. */ + protected ImmutableSortedKeyMap targets; /** * Default visibility for rules that do not specify it. @@ -436,16 +434,13 @@ public class Package { return events; } - /** - * Returns an (immutable, unordered) view of all the targets belonging to this package. - */ - public Collection getTargets() { - return getTargets(targets); + /** Returns an (immutable, unordered) view of all the targets belonging to this package. */ + public ImmutableSortedKeyMap getTargets() { + return targets; } /** - * Common getTargets implementation, accessible by both {@link Package} and - * {@link Package.Builder}. + * Common getTargets implementation, accessible by {@link Package.Builder}. */ private static Collection getTargets(Map targetMap) { return Collections.unmodifiableCollection(targetMap.values()); diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java index d12b3ac5b5..84a1fc7e73 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java @@ -41,7 +41,7 @@ public final class TargetPatternResolverUtil { public static ResolvedTargets resolvePackageTargets(Package pkg, FilteringPolicy policy) { ResolvedTargets.Builder builder = ResolvedTargets.builder(); - for (Target target : pkg.getTargets()) { + for (Target target : pkg.getTargets().values()) { if (policy.shouldRetain(target, false)) { builder.add(target); } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java index 1cd14030c3..007828af53 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java @@ -87,7 +87,7 @@ public class PreciseAspectResolver implements AspectResolver { Set dependentPackages = new LinkedHashSet<>(); // First compute with packages can possibly affect the aspect attributes of this package: // Iterate over all rules... - for (Target target : pkg.getTargets()) { + for (Target target : pkg.getTargets().values()) { if (!(target instanceof Rule)) { continue; diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java index 03d7c15b93..59a68c50d7 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java @@ -177,7 +177,7 @@ public class SkylarkFileContentHashTests extends BuildViewTestCase { SkyframeExecutorTestUtils.evaluate( getSkyframeExecutor(), pkgLookupKey, /*keepGoing=*/ false, reporter); assertFalse(result.hasError()); - Collection targets = result.get(pkgLookupKey).getPackage().getTargets(); + Collection targets = result.get(pkgLookupKey).getPackage().getTargets().values(); for (Target target : targets) { if (target.getName().equals(name)) { return ((Rule) target) diff --git a/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java b/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java index 21f20cfb16..946ece8cee 100644 --- a/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java +++ b/src/test/java/com/google/devtools/build/lib/testutil/BazelPackageBuilderHelperForTesting.java @@ -88,9 +88,10 @@ public class BazelPackageBuilderHelperForTesting implements Package.Builder.Help throw new IllegalStateException(e); } ImmutableSet