diff options
author | 2017-02-13 17:14:57 +0000 | |
---|---|---|
committer | 2017-02-14 14:19:18 +0000 | |
commit | 448ee8124be341975633f67e35d699bbf57b963a (patch) | |
tree | ecd548845502125bd638ecfe672c2ba317368f76 /src/main/java/com/google/devtools/build/lib/skyframe/SkylarkModuleCycleReporter.java | |
parent | c1641b8f953120dc04ac562b1529e8b0d775da25 (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.java | 6 |
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(); |