diff options
author | Janak Ramakrishnan <janakr@google.com> | 2015-09-14 17:10:57 +0000 |
---|---|---|
committer | John Field <jfield@google.com> | 2015-09-15 20:25:26 +0000 |
commit | 097736ee9490e4ccf25cf56a201198f3a0388af7 (patch) | |
tree | 6e2d619ae7a0fa7d2b09c7066868ae1728f1fe15 /src/main/java/com | |
parent | f9b1c3382f91329c2d1230db116d3af40544c473 (diff) |
Package that is dependency of genquery cannot be null when genquery is being analyzed.
--
MOS_MIGRATED_REVID=103003180
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java index 0f59428f61..737ab6da30 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java @@ -177,18 +177,19 @@ public class GenQuery implements RuleConfiguredTargetFactory { // The transitive closure of these targets is an upper estimate on the labels // the query will touch - @Nullable private Set<Target> getScope(RuleContext context) { List<Label> scopeLabels = context.attributes().get("scope", Type.LABEL_LIST); Set<Target> scope = Sets.newHashSetWithExpectedSize(scopeLabels.size()); for (Label scopePart : scopeLabels) { + SkyFunction.Environment env = context.getAnalysisEnvironment().getSkyframeEnv(); + PackageValue packageNode = + (PackageValue) env.getValue(PackageValue.key(scopePart.getPackageFragment())); + Preconditions.checkNotNull( + packageNode, + "Packages in transitive closure of scope '%s'" + + "were already loaded during the loading phase", + scopePart); try { - SkyFunction.Environment env = context.getAnalysisEnvironment().getSkyframeEnv(); - PackageValue packageNode = (PackageValue) env.getValue( - PackageValue.key(scopePart.getPackageFragment())); - if (packageNode == null) { - return null; - } scope.add(packageNode.getPackage().getTarget(scopePart.getName())); } catch (NoSuchTargetException e) { throw new IllegalStateException(e); @@ -236,10 +237,6 @@ public class GenQuery implements RuleConfiguredTargetFactory { @Nullable private byte[] executeQuery(RuleContext ruleContext, QueryOptions queryOptions, Set<Target> scope, String query) throws InterruptedException { - - if (scope == null) { - return null; - } SkyFunction.Environment env = ruleContext.getAnalysisEnvironment().getSkyframeEnv(); Pair<ImmutableMap<PackageIdentifier, Package>, Set<Label>> closureInfo = constructPackageMap(env, scope); |