aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2017-02-13 17:14:57 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2017-02-14 14:19:18 +0000
commit448ee8124be341975633f67e35d699bbf57b963a (patch)
treeecd548845502125bd638ecfe672c2ba317368f76 /src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java
parentc1641b8f953120dc04ac562b1529e8b0d775da25 (diff)
Fix IllegalStateException when loading from a non declared external repository
This is another instance of #1793 that happens when a WORKSPACE file exists in some path underneath your current workspace. -- Change-Id: Idb01cd643548a170a27c9103f1b5081b058cc005 Reviewed-on: https://cr.bazel.build/8143 PiperOrigin-RevId: 147353935 MOS_MIGRATED_REVID=147353935
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.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 849fe1e413..3900b1b956 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
@@ -52,6 +52,9 @@ public class SkylarkModuleCycleReporter implements CyclesReporter.SingleCycleRep
private static final Predicate<SkyKey> IS_EXTERNAL_PACKAGE =
SkyFunctions.isSkyFunction(SkyFunctions.EXTERNAL_PACKAGE);
+ private static final Predicate<SkyKey> IS_LOCAL_REPOSITORY_LOOKUP =
+ SkyFunctions.isSkyFunction(SkyFunctions.LOCAL_REPOSITORY_LOOKUP);
+
@Override
public boolean maybeReportCycle(SkyKey topLevelKey, CycleInfo cycleInfo, boolean alreadyReported,
EventHandler eventHandler) {
@@ -97,7 +100,8 @@ public class SkylarkModuleCycleReporter implements CyclesReporter.SingleCycleRep
} 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_EXTERNAL_PACKAGE.apply(lastPathElement))) {
+ || IS_EXTERNAL_PACKAGE.apply(lastPathElement)
+ || IS_LOCAL_REPOSITORY_LOOKUP.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();