aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Vladimir Moskva <vladmos@google.com>2016-09-27 14:09:16 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-09-27 14:58:25 +0000
commit398b54d0ea0c511e412feb695fe46ebaa02f590b (patch)
treec8142f62f805d285d1869513f635a4b214aaa10f /src/main/java
parent6f6db014b4cd31c3d5d070640118ce64243cd42b (diff)
Fixed ISE while looking for cycles in WORKPLACE files #1793
-- MOS_MIGRATED_REVID=134403060
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
index 80e190b6ac..d66bd57d4c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
@@ -48,6 +48,9 @@ public class SkylarkModuleCycleReporter implements CyclesReporter.SingleCycleRep
private static final Predicate<SkyKey> IS_AST_FILE_LOOKUP =
SkyFunctions.isSkyFunction(SkyFunctions.AST_FILE_LOOKUP);
+ private static final Predicate<SkyKey> IS_EXTERNAL_PACKAGE =
+ SkyFunctions.isSkyFunction(SkyFunctions.EXTERNAL_PACKAGE);
+
@Override
public boolean maybeReportCycle(SkyKey topLevelKey, CycleInfo cycleInfo, boolean alreadyReported,
EventHandler eventHandler) {
@@ -83,7 +86,8 @@ public class SkylarkModuleCycleReporter implements CyclesReporter.SingleCycleRep
return true;
} else if (Iterables.any(cycle, IS_PACKAGE_LOOKUP) && Iterables.any(cycle, IS_WORKSPACE_FILE)
&& (IS_REPOSITORY_DIRECTORY.apply(lastPathElement)
- || IS_PACKAGE_SKY_KEY.apply(lastPathElement))) {
+ || IS_PACKAGE_SKY_KEY.apply(lastPathElement)
+ || IS_EXTERNAL_PACKAGE.apply(lastPathElement))) {
// We have a cycle in the workspace file, report as such.
Label fileLabel =
(Label) Iterables.getLast(Iterables.filter(cycle, IS_AST_FILE_LOOKUP)).argument();