diff options
author | Lukacs Berki <lberki@google.com> | 2015-11-20 09:31:33 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2015-11-20 21:06:18 +0000 |
commit | c509e33d4d2a648a1eb8dedb2212215ade35667a (patch) | |
tree | 0c1319ea102e564b3079ccb0489f5e218fa45975 /src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java | |
parent | b94713e8f83ef4dad4a6611411d93eadbcc4c95f (diff) |
Do not recurse into the convenience symlinks when evaluating the "//..." target pattern.
Apart from the tests, I also tested this manually running "bazel query //..." in a tree with convenience symlinks.
--
MOS_MIGRATED_REVID=108325454
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java index b42d9b45c8..dbbbe8cd6d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableSet; +import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; @@ -38,15 +39,24 @@ import javax.annotation.Nullable; * "foo/subpkg". */ public class RecursivePkgFunction implements SkyFunction { + private final BlazeDirectories directories; + + public RecursivePkgFunction(BlazeDirectories directories) { + this.directories = directories; + } @Override public SkyValue compute(SkyKey skyKey, Environment env) { return new MyTraversalFunction().visitDirectory((RecursivePkgKey) skyKey.argument(), env); } - private static class MyTraversalFunction + private class MyTraversalFunction extends RecursiveDirectoryTraversalFunction<MyVisitor, RecursivePkgValue> { + private MyTraversalFunction() { + super(directories); + } + @Override protected RecursivePkgValue getEmptyReturn() { return RecursivePkgValue.EMPTY; |