diff options
Diffstat (limited to 'src/main')
4 files changed, 29 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java b/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java index 308603bf90..224ada6c01 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java +++ b/src/main/java/com/google/devtools/build/lib/query2/FakeSubincludeTarget.java @@ -23,7 +23,7 @@ import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleVisibility; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.util.Preconditions; - +import java.util.Objects; import java.util.Set; /** @@ -88,4 +88,23 @@ public class FakeSubincludeTarget implements Target { public boolean isConfigurable() { return true; } + + @Override + public String toString() { + return label.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(label, pkg); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof FakeSubincludeTarget)) { + return false; + } + FakeSubincludeTarget other = (FakeSubincludeTarget) obj; + return label.equals(other.label) && pkg.equals(other.pkg); + } } diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/BuildFilesFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/BuildFilesFunction.java index 0e65cbdf05..d2a2eb0fa8 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/engine/BuildFilesFunction.java +++ b/src/main/java/com/google/devtools/build/lib/query2/engine/BuildFilesFunction.java @@ -49,6 +49,7 @@ class BuildFilesFunction implements QueryFunction { List<Argument> args, final Callback<T> callback) throws QueryException, InterruptedException { + final Uniquifier<T> uniquifier = env.createUniquifier(); env.eval( args.get(0).getExpression(), context, @@ -58,9 +59,9 @@ class BuildFilesFunction implements QueryFunction { throws QueryException, InterruptedException { Set<T> result = CompactHashSet.create(); Iterables.addAll(result, partialResult); - callback.process( + callback.process(uniquifier.unique( env.getBuildFiles( - expression, result, /* BUILD */ true, /* subinclude */ true, /* load */ true)); + expression, result, /* BUILD */ true, /* subinclude */ true, /* load */ true))); } }); } diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/LoadFilesFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/LoadFilesFunction.java index 6b42ba4f37..311a6afff5 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/engine/LoadFilesFunction.java +++ b/src/main/java/com/google/devtools/build/lib/query2/engine/LoadFilesFunction.java @@ -45,6 +45,7 @@ class LoadFilesFunction implements QueryEnvironment.QueryFunction { List<QueryEnvironment.Argument> args, final Callback<T> callback) throws QueryException, InterruptedException { + final Uniquifier<T> uniquifier = env.createUniquifier(); env.eval( args.get(0).getExpression(), context, @@ -54,13 +55,13 @@ class LoadFilesFunction implements QueryEnvironment.QueryFunction { throws QueryException, InterruptedException { Set<T> result = CompactHashSet.create(); Iterables.addAll(result, partialResult); - callback.process( + callback.process(uniquifier.unique( env.getBuildFiles( expression, result, /* BUILD */ false, /* subinclude */ false, - /* load */ true)); + /* load */ true))); } }); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java index fbcc10f0c8..34cde7627a 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java @@ -216,7 +216,8 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor { ImmutableList<BuildInfoFactory> buildInfoFactories, Iterable<? extends DiffAwareness.Factory> diffAwarenessFactories, PathFragment blacklistedPackagePrefixesFile, - String productName) { + String productName, + Preprocessor.Factory.Supplier preprocessorFactorySupplier) { return create( pkgFactory, directories, @@ -225,7 +226,7 @@ public final class SequencedSkyframeExecutor extends SkyframeExecutor { buildInfoFactories, diffAwarenessFactories, Predicates.<PathFragment>alwaysFalse(), - Preprocessor.Factory.Supplier.NullSupplier.INSTANCE, + preprocessorFactorySupplier, ImmutableMap.<SkyFunctionName, SkyFunction>of(), ImmutableList.<PrecomputedValue.Injected>of(), ImmutableList.<SkyValueDirtinessChecker>of(), |