aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2015-11-20 09:31:33 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-11-20 21:06:18 +0000
commitc509e33d4d2a648a1eb8dedb2212215ade35667a (patch)
tree0c1319ea102e564b3079ccb0489f5e218fa45975 /src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java
parentb94713e8f83ef4dad4a6611411d93eadbcc4c95f (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.java12
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;