[7.1.1] Revert "[7.1.0] Fix `bazel fetch` by replacing query with cquery for … (#21735)
…underlying implementation (#21567)"
This reverts commit bbd608c3b6f96d25decce91eec742fbf4a3535c2.
See
https://github.com/bazelbuild/bazel/issues/21728#issuecomment-2007967169
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 482444d..716b26c4 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -383,7 +383,6 @@
"//src/main/java/com/google/devtools/build/lib/profiler/memory:allocationtracker",
"//src/main/java/com/google/devtools/build/lib/query2",
"//src/main/java/com/google/devtools/build/lib/query2:aquery-utils",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/query2/query/output",
"//src/main/java/com/google/devtools/build/lib/runtime/events",
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
index c5e79a9..1a0b1ba 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
@@ -39,7 +39,7 @@
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.starlarkbuildapi.FileApi;
import com.google.devtools.build.lib.util.FileType;
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ArtifactRoot.java b/src/main/java/com/google/devtools/build/lib/actions/ArtifactRoot.java
index 26dc193..ca1a6e6 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ArtifactRoot.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ArtifactRoot.java
@@ -21,7 +21,6 @@
import com.google.devtools.build.lib.actions.Artifact.SourceArtifact;
import com.google.devtools.build.lib.cmdline.LabelConstants;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.starlarkbuildapi.FileRootApi;
import com.google.devtools.build.lib.vfs.Path;
@@ -165,7 +164,7 @@
return INTERNER.intern(new ArtifactRoot(Root.fromPath(root), execPath, rootType));
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static ArtifactRoot createForSerialization(
Root rootForSerialization, PathFragment execPath, RootType rootType) {
diff --git a/src/main/java/com/google/devtools/build/lib/actions/BUILD b/src/main/java/com/google/devtools/build/lib/actions/BUILD
index 71ea06e..c8c6e19 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/actions/BUILD
@@ -179,7 +179,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:sane_analysis_exception",
"//src/main/java/com/google/devtools/build/lib/skyframe:skyframe_aware_action",
"//src/main/java/com/google/devtools/build/lib/skyframe:tree_artifact_value",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
@@ -320,7 +319,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:detailed_exceptions",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
@@ -401,7 +399,6 @@
":has_digest",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/io:inconsistent_filesystem_exception",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util",
diff --git a/src/main/java/com/google/devtools/build/lib/actions/FileValue.java b/src/main/java/com/google/devtools/build/lib/actions/FileValue.java
index 1453b49..3d26ea9 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/FileValue.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/FileValue.java
@@ -19,7 +19,6 @@
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
@@ -151,7 +150,7 @@
}
/** Key type for FileValue. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
public static class Key extends AbstractSkyKey<RootedPath> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -160,7 +159,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RootedPath arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParams.java b/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParams.java
index a82b60e..ec9dcde 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParams.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParams.java
@@ -17,8 +17,8 @@
import com.google.auto.value.extension.memoized.Memoized;
import com.google.common.collect.ImmutableSortedSet;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Instantiator;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
index a1ab16b..4d31fd6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -407,7 +407,6 @@
"//src/main/java/com/google/devtools/build/lib/profiler",
"//src/main/java/com/google/devtools/build/lib/profiler:google-auto-profiler-utils",
"//src/main/java/com/google/devtools/build/lib/profiler/memory:current_rule_tracker",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/shell",
"//src/main/java/com/google/devtools/build/lib/skyframe:aspect_key_creator",
"//src/main/java/com/google/devtools/build/lib/skyframe:build_info_collection_value",
@@ -417,7 +416,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:starlark_builtins_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:workspace_status_value",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
@@ -694,7 +692,6 @@
":transitive_info_collection",
"//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
"//src/main/java/net/starlark/java/eval",
"//third_party:guava",
@@ -1229,7 +1226,6 @@
":transitive_info_provider_map",
"//src/main/java/com/google/devtools/build/lib/collect",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//third_party:guava",
"//third_party:jsr305",
@@ -1385,7 +1381,6 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util",
@@ -2497,14 +2492,12 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/net/starlark/java/eval",
"//src/main/java/net/starlark/java/syntax",
- "//third_party:error_prone_annotations",
"//third_party:guava",
"//third_party:jsr305",
],
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
index aafa9ae..2a48c40 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
@@ -50,7 +50,7 @@
import com.google.devtools.build.lib.packages.TestSize;
import com.google.devtools.build.lib.packages.Type;
import com.google.devtools.build.lib.packages.Type.ConversionException;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.FileTypeSet;
import javax.annotation.Nullable;
@@ -63,7 +63,7 @@
private BaseRuleClasses() {}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Attribute.ComputedDefault testonlyDefault =
new Attribute.ComputedDefault() {
@Override
@@ -77,7 +77,7 @@
}
};
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Attribute.ComputedDefault deprecationDefault =
new Attribute.ComputedDefault() {
@Override
@@ -91,7 +91,7 @@
}
};
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
public static final Attribute.ComputedDefault TIMEOUT_DEFAULT =
new Attribute.ComputedDefault() {
@Override
@@ -112,7 +112,7 @@
}
};
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
public static final Attribute.ComputedDefault packageMetadataDefault =
new Attribute.ComputedDefault() {
@Override
@@ -135,7 +135,7 @@
* they only run on the target configuration and should not operate on action_listeners and
* extra_actions themselves (to avoid cycles).
*/
- @SerializationConstant @VisibleForSerialization @VisibleForTesting
+ @SerializationConstant @AutoCodec.VisibleForSerialization @VisibleForTesting
static final LabelListLateBoundDefault<?> ACTION_LISTENER =
LabelListLateBoundDefault.fromTargetConfiguration(
BuildConfigurationValue.class,
@@ -143,7 +143,7 @@
public static final String DEFAULT_COVERAGE_SUPPORT_VALUE = "//tools/test:coverage_support";
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Resolver<TestConfiguration, Label> COVERAGE_SUPPORT_CONFIGURATION_RESOLVER =
(rule, attributes, configuration) -> configuration.getCoverageSupport();
@@ -156,7 +156,7 @@
public static final String DEFAULT_COVERAGE_REPORT_GENERATOR_VALUE =
"//tools/test:coverage_report_generator";
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Resolver<CoverageConfiguration, Label>
COVERAGE_REPORT_GENERATOR_CONFIGURATION_RESOLVER =
(rule, attributes, configuration) -> configuration.reportGenerator();
@@ -174,13 +174,13 @@
CoverageConfiguration.class, null, COVERAGE_OUTPUT_GENERATOR_RESOLVER);
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Resolver<CoverageConfiguration, Label> COVERAGE_OUTPUT_GENERATOR_RESOLVER =
(rule, attributes, configuration) -> configuration.outputGenerator();
// TODO(b/65746853): provide a way to do this without passing the entire configuration
/** Implementation for the :run_under attribute. */
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
public static final LabelLateBoundDefault<?> RUN_UNDER =
LabelLateBoundDefault.fromTargetConfiguration(
BuildConfigurationValue.class,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
index af72a30..3db2dec 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
import javax.annotation.Nullable;
import net.starlark.java.eval.Dict;
@@ -36,7 +35,7 @@
* their direct dependencies, only the corresponding {@link TransitiveInfoCollection}s. Also, {@link
* ConfiguredTarget} objects should not be accessible from the action graph.
*/
-public interface ConfiguredTarget extends TransitiveInfoCollection, Structure, CqueryNode {
+public interface ConfiguredTarget extends TransitiveInfoCollection, Structure {
/** All <code>ConfiguredTarget</code>s have a "label" field. */
String LABEL_FIELD = "label";
@@ -45,7 +44,6 @@
String FILES_FIELD = "files";
/** Returns a key that may be used to lookup this {@link ConfiguredTarget}. */
- @Override
ActionLookupKey getLookupKey();
@Override
@@ -53,7 +51,6 @@
return getLookupKey().getLabel();
}
- @Override
@Nullable
default String getConfigurationChecksum() {
return getConfigurationKey() == null ? null : getConfigurationKey().getOptions().checksum();
@@ -68,9 +65,8 @@
* com.google.devtools.build.lib.analysis.configuredtargets.PackageGroupConfiguredTarget} for
* which it is always <b>null</b>.
*
- * <p>If this changes, {@link AspectResolver#aspectMatchesConfiguredTarget} should be updated.
+ * <p>If this changes, {@link AspectResolver#aspecMatchesConfiguredTarget} should be updated.
*/
- @Override
@Nullable
default BuildConfigurationKey getConfigurationKey() {
return getLookupKey().getConfigurationKey();
@@ -93,7 +89,6 @@
* If the configured target is an alias, return the actual target, otherwise return the current
* target. This follows alias chains.
*/
- @Override
default ConfiguredTarget getActual() {
return this;
}
@@ -103,7 +98,6 @@
* label. This is not the same as {@code getActual().getLabel()}, because it does not follow alias
* chains.
*/
- @Override
default Label getOriginalLabel() {
return getLabel();
}
@@ -112,12 +106,10 @@
* The configuration conditions that trigger this configured target's configurable attributes. For
* targets that do not support configurable attributes, this will be an empty map.
*/
- @Override
default ImmutableMap<Label, ConfigMatchingProvider> getConfigConditions() {
return ImmutableMap.of();
}
- @Override
default boolean isRuleConfiguredTarget() {
return false;
}
@@ -127,7 +119,6 @@
*
* <p>Unwrapping is recursive if there are multiple layers.
*/
- @Override
default ConfiguredTarget unwrapIfMerged() {
return this;
}
@@ -137,7 +128,6 @@
*
* @return a map of provider names to their values, or null if there are no providers
*/
- @Override
@Nullable
default Dict<String, Object> getProvidersDictForQuery() {
return null;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
index a3458a5..7499663 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
@@ -27,7 +27,7 @@
import com.google.devtools.build.lib.server.FailureDetails.Execution;
import com.google.devtools.build.lib.server.FailureDetails.Execution.Code;
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.DetailedExitCode;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.protobuf.Extension;
@@ -41,10 +41,11 @@
* about rules to extra_actions.
*/
public class PseudoAction<InfoType extends MessageLite> extends AbstractAction {
- @VisibleForSerialization protected final UUID uuid;
+ @AutoCodec.VisibleForSerialization protected final UUID uuid;
private final String mnemonic;
- @VisibleForSerialization protected final Extension<ExtraActionInfo, InfoType> infoExtension;
+ @AutoCodec.VisibleForSerialization
+ protected final Extension<ExtraActionInfo, InfoType> infoExtension;
private final InfoType info;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
index 04854ed..91fcc27 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -38,7 +38,7 @@
import com.google.devtools.build.lib.events.EventKind;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.starlarkbuildapi.RunfilesApi;
import com.google.devtools.build.lib.util.Fingerprint;
@@ -88,7 +88,7 @@
}
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final EmptyFilesSupplier DUMMY_EMPTY_FILES_SUPPLIER = new DummyEmptyFilesSupplier();
// It is important to declare this *after* the DUMMY_SYMLINK_EXPANDER to avoid NPEs
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
index 9560b21..cbe7eb5 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
@@ -30,7 +30,6 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.profiler.AutoProfiler;
import com.google.devtools.build.lib.profiler.GoogleAutoProfilerUtils;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashMap;
@@ -244,7 +243,7 @@
*
* <p>Always returns false for hidden rules and source file targets.
*/
- public static boolean shouldConsiderForDisplay(CqueryNode configuredTarget) {
+ public static boolean shouldConsiderForDisplay(ConfiguredTarget configuredTarget) {
// TODO(bazel-team): this is quite ugly. Add a marker provider for this check.
if (configuredTarget instanceof InputFileConfiguredTarget) {
// Suppress display of source files (because we do no work to build them).
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapImpl.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapImpl.java
index 9234406..3d3969a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapImpl.java
@@ -18,8 +18,8 @@
import com.google.devtools.build.lib.collect.ImmutableSharedKeyMap;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import java.util.Map;
import javax.annotation.Nullable;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java
index 0514de1..ab26b32 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLine.java
@@ -37,7 +37,7 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.OnDemandString;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
index ca9668e..889111f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/BUILD
@@ -25,11 +25,12 @@
),
deps = [
"//src/main/java/com/google/devtools/build/lib/analysis:config/config_matching_provider",
+ "//src/main/java/com/google/devtools/build/lib/analysis:required_config_fragments_provider",
"//src/main/java/com/google/devtools/build/lib/analysis:transitive_info_provider",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/platform",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/util:string",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java
index 9f88d0e..9ee99af 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/platform/ToolchainInfo.java
@@ -21,7 +21,7 @@
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.BuiltinProvider;
import com.google.devtools.build.lib.packages.NativeInfo;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.starlarkbuildapi.platform.ToolchainInfoApi;
import java.util.Map;
import net.starlark.java.eval.Dict;
@@ -59,7 +59,7 @@
}
}
- @VisibleForSerialization final ImmutableSortedMap<String, Object> values;
+ @AutoCodec.VisibleForSerialization final ImmutableSortedMap<String, Object> values;
private ImmutableSet<String> fieldNames; // initialized lazily (with monitor synchronization)
/** Constructs a ToolchainInfo. The {@code values} map itself is not retained. */
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkActionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkActionFactory.java
index d00394c..44ff502 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkActionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkActionFactory.java
@@ -67,7 +67,7 @@
import com.google.devtools.build.lib.server.FailureDetails;
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
import com.google.devtools.build.lib.server.FailureDetails.Interrupted;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.starlarkbuildapi.FileApi;
import com.google.devtools.build.lib.starlarkbuildapi.StarlarkActionFactoryApi;
@@ -273,7 +273,7 @@
registerAction(action);
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final GeneratedMessage.GeneratedExtension<ExtraActionInfo, SpawnInfo> SPAWN_INFO =
SpawnInfo.spawnInfo;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java
index 2ae61bdb..b72bde0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java
@@ -35,7 +35,6 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.starlarkbuildapi.DirectoryExpander;
import com.google.devtools.build.lib.starlarkbuildapi.FileApi;
@@ -113,7 +112,7 @@
this.features = features;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static VectorArg create(int features) {
return interner.intern(new VectorArg(features));
@@ -598,7 +597,7 @@
this.hasFormat = hasFormat;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static ScalarArg create(boolean hasFormat) {
return interner.intern(new ScalarArg(hasFormat));
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD
index 2e23da9..9d44412 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD
@@ -157,7 +157,6 @@
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/rules:repository/repo_recorded_input",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -252,10 +251,11 @@
],
deps = [
"//src/main/java/com/google/devtools/build/lib/cmdline",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:guava",
],
)
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelFetchAllValue.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelFetchAllValue.java
index a0eaa8f..7e28315 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelFetchAllValue.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelFetchAllValue.java
@@ -19,7 +19,6 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -48,7 +47,7 @@
}
/** Key type for BazelFetchAllValue. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
public static class Key extends AbstractSkyKey<Boolean> {
private static final SkyKeyInterner<BazelFetchAllValue.Key> interner = SkyKey.newInterner();
@@ -57,7 +56,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static BazelFetchAllValue.Key create(Boolean arg) {
return interner.intern(new BazelFetchAllValue.Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleValue.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleValue.java
index 77d9c06..54debf5 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleValue.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleValue.java
@@ -17,7 +17,6 @@
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.packages.Rule;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -69,7 +68,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RepositoryName arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/commands/BUILD
index 5c074c8..0ace636 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/BUILD
@@ -45,10 +45,11 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
+ "//src/main/java/com/google/devtools/build/lib/packages:label_printer",
"//src/main/java/com/google/devtools/build/lib/packages/semantics",
"//src/main/java/com/google/devtools/build/lib/pkgcache",
- "//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
+ "//src/main/java/com/google/devtools/build/lib/query2/common:abstract-blaze-query-env",
+ "//src/main/java/com/google/devtools/build/lib/query2/common:universe-scope",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/rules:repository/repository_directory_value",
"//src/main/java/com/google/devtools/build/lib/rules:repository/repository_function",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
index d9d6447..f1cd851 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
@@ -30,7 +30,6 @@
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
import com.google.devtools.build.lib.pkgcache.PackageOptions;
-import com.google.devtools.build.lib.query2.cquery.CqueryOptions;
import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryValue;
import com.google.devtools.build.lib.runtime.BlazeCommand;
@@ -39,18 +38,17 @@
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.runtime.KeepGoingOption;
import com.google.devtools.build.lib.runtime.LoadingPhaseThreadsOption;
-import com.google.devtools.build.lib.runtime.commands.TestCommand;
import com.google.devtools.build.lib.server.FailureDetails;
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
import com.google.devtools.build.lib.server.FailureDetails.FetchCommand.Code;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.RepositoryMappingValue.RepositoryMappingResolutionException;
+import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.DetailedExitCode;
import com.google.devtools.build.lib.util.InterruptedFailureDetails;
import com.google.devtools.build.skyframe.EvaluationContext;
import com.google.devtools.build.skyframe.EvaluationResult;
import com.google.devtools.build.skyframe.SkyValue;
-import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsParsingResult;
import java.util.List;
import javax.annotation.Nullable;
@@ -58,16 +56,12 @@
/** Fetches external repositories. Which is so fetch. */
@Command(
name = FetchCommand.NAME,
- builds = true,
- inherits = {TestCommand.class},
options = {
FetchOptions.class,
- CqueryOptions.class,
PackageOptions.class,
KeepGoingOption.class,
LoadingPhaseThreadsOption.class
},
- usesConfigurationOptions = true,
help = "resource:fetch.txt",
shortDescription = "Fetches external repositories that are prerequisites to the targets.",
allowResidue = true,
@@ -77,14 +71,6 @@
public static final String NAME = "fetch";
@Override
- public void editOptions(OptionsParser optionsParser) {
- // We only need to inject these options with fetch target (when there is a residue)
- if (!optionsParser.getResidue().isEmpty()) {
- TargetFetcher.injectOptionsToFetchTarget(optionsParser);
- }
- }
-
- @Override
public BlazeCommandResult exec(CommandEnvironment env, OptionsParsingResult options) {
BlazeCommandResult invalidResult = validateOptions(env, options);
if (invalidResult != null) {
@@ -114,6 +100,7 @@
BlazeCommandResult result;
LoadingPhaseThreadsOption threadsOption = options.getOptions(LoadingPhaseThreadsOption.class);
try {
+ env.syncPackageLoading(options);
if (!options.getResidue().isEmpty()) {
result = fetchTarget(env, options, options.getResidue());
} else if (!fetchOptions.repos.isEmpty()) {
@@ -121,6 +108,9 @@
} else { // --all, --configure, or just 'fetch'
result = fetchAll(env, threadsOption, fetchOptions.configure);
}
+ } catch (AbruptExitException e) {
+ return createFailedBlazeCommandResult(
+ env.getReporter(), e.getMessage(), e.getDetailedExitCode());
} catch (InterruptedException e) {
return createFailedBlazeCommandResult(
env.getReporter(), "Fetch interrupted: " + e.getMessage());
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/TargetFetcher.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/TargetFetcher.java
index 71df720..94de6ab 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/TargetFetcher.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/TargetFetcher.java
@@ -14,39 +14,30 @@
package com.google.devtools.build.lib.bazel.commands;
-import static com.google.common.collect.ImmutableMap.toImmutableMap;
-
import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.buildtool.BuildRequest;
-import com.google.devtools.build.lib.buildtool.BuildResult;
-import com.google.devtools.build.lib.buildtool.BuildTool;
-import com.google.devtools.build.lib.buildtool.CqueryProcessor;
import com.google.devtools.build.lib.cmdline.RepositoryMapping;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.cmdline.TargetPattern;
import com.google.devtools.build.lib.cmdline.TargetPattern.Parser;
-import com.google.devtools.build.lib.query2.NamedThreadSafeOutputFormatterCallback;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
-import com.google.devtools.build.lib.query2.cquery.ConfiguredTargetQueryEnvironment;
-import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
+import com.google.devtools.build.lib.packages.LabelPrinter;
+import com.google.devtools.build.lib.packages.Target;
+import com.google.devtools.build.lib.query2.common.AbstractBlazeQueryEnvironment;
+import com.google.devtools.build.lib.query2.common.UniverseScope;
+import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
+import com.google.devtools.build.lib.query2.engine.QueryEvalResult;
+import com.google.devtools.build.lib.query2.engine.QueryException;
import com.google.devtools.build.lib.query2.engine.QueryExpression;
-import com.google.devtools.build.lib.query2.engine.QueryParser;
import com.google.devtools.build.lib.query2.engine.QuerySyntaxException;
+import com.google.devtools.build.lib.query2.engine.ThreadSafeOutputFormatterCallback;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.runtime.KeepGoingOption;
import com.google.devtools.build.lib.runtime.LoadingPhaseThreadsOption;
+import com.google.devtools.build.lib.runtime.commands.QueryCommand;
import com.google.devtools.build.lib.skyframe.RepositoryMappingValue.RepositoryMappingResolutionException;
-import com.google.devtools.common.options.OptionPriority.PriorityCategory;
-import com.google.devtools.common.options.OptionsParser;
-import com.google.devtools.common.options.OptionsParsingException;
import com.google.devtools.common.options.OptionsParsingResult;
-import java.util.Collection;
+import java.io.IOException;
+import java.util.EnumSet;
import java.util.List;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Stream;
/** Fetches all repos needed for building a given set of targets. */
public class TargetFetcher {
@@ -56,7 +47,7 @@
this.env = env;
}
- /** Uses cquery to find and fetch all repos needed to build these targets */
+ /** Uses `deps` query to find and fetch all repos needed for these targets */
public static void fetchTargets(
CommandEnvironment env, OptionsParsingResult options, List<String> targets)
throws RepositoryMappingResolutionException, InterruptedException, TargetFetcherException {
@@ -65,17 +56,28 @@
private void fetchTargets(OptionsParsingResult options, List<String> targets)
throws InterruptedException, TargetFetcherException, RepositoryMappingResolutionException {
- QueryExpression expr = createQueryExpression(targets);
- BuildRequest request = createBuildRequest(env, options, targets);
- TargetPattern.Parser mainRepoTargetParser = getMainRepoMappingParser(env);
+ AbstractBlazeQueryEnvironment<Target> queryEnv = getQueryEnv(options);
+ QueryExpression expr = createQueryExpression(targets, queryEnv);
+ QueryEvalResult queryEvalResult;
+ try {
+ queryEvalResult =
+ queryEnv.evaluateQuery(
+ expr,
+ new ThreadSafeOutputFormatterCallback<>() {
+ @Override
+ public void processOutput(Iterable<Target> partialResult) {}
+ });
+ } catch (IOException e) {
+ // Should be impossible since our OutputFormatterCallback doesn't throw IOException.
+ throw new IllegalStateException(e);
+ } catch (QueryException e) {
+ throw new TargetFetcherException(
+ String.format(
+ "Fetching target dependencies for %s encountered an error: %s",
+ expr, e.getMessage()));
+ }
- BuildResult result =
- new BuildTool(
- env,
- new CqueryProcessor(
- expr, mainRepoTargetParser, Optional.of(createNoOutputFormatter())))
- .processRequest(request, /* validator= */ null);
- if (!result.getSuccess()) {
+ if (!queryEvalResult.getSuccess()) {
throw new TargetFetcherException(
String.format(
"Fetching some target dependencies for %s failed, but --keep_going specified. "
@@ -84,59 +86,33 @@
}
}
- /** Creates special output formatter for fetch that doesn't print anything */
- private NamedThreadSafeOutputFormatterCallback<CqueryNode> createNoOutputFormatter() {
- return new NamedThreadSafeOutputFormatterCallback<CqueryNode>() {
- @Override
- public String getName() {
- return "no_output";
- }
-
- @Override
- public void processOutput(Iterable<CqueryNode> partialResult) {
- // Just do nothing!
- // This will be later used to collect repos for vendoring
- }
- };
- }
-
- private BuildRequest createBuildRequest(
- CommandEnvironment env, OptionsParsingResult options, List<String> targets) {
- return BuildRequest.builder()
- .setCommandName(env.getCommandName())
- .setId(env.getCommandId())
- .setOptions(options)
- .setStartupOptions(env.getRuntime().getStartupOptionsProvider())
- .setOutErr(env.getReporter().getOutErr())
- .setTargets(targets)
- .setStartTimeMillis(env.getCommandStartTime())
- .setCheckforActionConflicts(false)
- .setReportIncompatibleTargets(false)
- .build();
- }
-
- private Parser getMainRepoMappingParser(CommandEnvironment env)
+ AbstractBlazeQueryEnvironment<Target> getQueryEnv(OptionsParsingResult options)
throws RepositoryMappingResolutionException, InterruptedException {
+ boolean keepGoing = options.getOptions(KeepGoingOption.class).keepGoing;
+ LoadingPhaseThreadsOption threadsOption = options.getOptions(LoadingPhaseThreadsOption.class);
RepositoryMapping repoMapping =
env.getSkyframeExecutor()
- .getMainRepoMapping(
- env.getOptions().getOptions(KeepGoingOption.class).keepGoing,
- env.getOptions().getOptions(LoadingPhaseThreadsOption.class).threads,
- env.getReporter());
- return new Parser(env.getRelativeWorkingDirectory(), RepositoryName.MAIN, repoMapping);
+ .getMainRepoMapping(keepGoing, threadsOption.threads, env.getReporter());
+ TargetPattern.Parser targetParser =
+ new Parser(env.getRelativeWorkingDirectory(), RepositoryName.MAIN, repoMapping);
+ return QueryCommand.newQueryEnvironment(
+ env,
+ keepGoing,
+ false,
+ UniverseScope.EMPTY,
+ threadsOption.threads,
+ EnumSet.noneOf(Setting.class),
+ /* useGraphlessQuery= */ true,
+ targetParser,
+ LabelPrinter.legacy());
}
- private QueryExpression createQueryExpression(List<String> targets)
+ private QueryExpression createQueryExpression(
+ List<String> targets, AbstractBlazeQueryEnvironment<Target> queryEnv)
throws TargetFetcherException {
String query = "deps(" + Joiner.on(" union ").join(targets) + ")";
-
- ImmutableMap<String, QueryFunction> functions =
- Stream.of(ConfiguredTargetQueryEnvironment.FUNCTIONS, env.getRuntime().getQueryFunctions())
- .flatMap(Collection::stream)
- .collect(toImmutableMap(QueryFunction::getName, Function.identity()));
-
try {
- return QueryParser.parse(query, functions);
+ return QueryExpression.parse(query, queryEnv);
} catch (QuerySyntaxException e) {
throw new TargetFetcherException(
String.format(
@@ -145,29 +121,6 @@
}
}
- static void injectOptionsToFetchTarget(OptionsParser optionsParser) {
- try {
- optionsParser.parse(
- PriorityCategory.COMPUTED_DEFAULT,
- "Options required to fetch target",
- ImmutableList.of("--nobuild"));
- optionsParser.parse(
- PriorityCategory.COMPUTED_DEFAULT,
- "Fetch target should include 'tags = [\"manual\"]' targets by default",
- ImmutableList.of("--build_manual_tests"));
- optionsParser.parse(
- PriorityCategory.SOFTWARE_REQUIREMENT,
- "Fetch target should not exclude test_suite rules",
- ImmutableList.of("--noexpand_test_suites"));
- optionsParser.parse(
- PriorityCategory.SOFTWARE_REQUIREMENT,
- "Fetch target should not exclude tests",
- ImmutableList.of("--nobuild_tests_only"));
- } catch (OptionsParsingException e) {
- throw new IllegalStateException("Fetch target needed options failed to parse", e);
- }
- }
-
static class TargetFetcherException extends Exception {
public TargetFetcherException(String message) {
super(message);
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD
index 900f1ab..72e5894 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD
@@ -40,7 +40,6 @@
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
"//src/main/java/com/google/devtools/build/lib/rules/java:java-compilation",
"//src/main/java/com/google/devtools/build/lib/rules/java:java-rules",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java
index d837998..dba04ab 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBuildInfoFactory.java
@@ -19,14 +19,14 @@
import com.google.devtools.build.lib.rules.java.BuildInfoPropertiesTranslator;
import com.google.devtools.build.lib.rules.java.GenericBuildInfoPropertiesTranslator;
import com.google.devtools.build.lib.rules.java.JavaBuildInfoFactory;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
/**
* BuildInfoFactory for Java.
*/
public class BazelJavaBuildInfoFactory extends JavaBuildInfoFactory {
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final GenericBuildInfoPropertiesTranslator VOLATILE_KEYS =
new GenericBuildInfoPropertiesTranslator(
ImmutableMap.<String, String>builder()
@@ -35,12 +35,12 @@
.put("build.timestamp", "%BUILD_TIMESTAMP%")
.buildOrThrow());
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final GenericBuildInfoPropertiesTranslator NONVOLATILE_KEYS =
new GenericBuildInfoPropertiesTranslator(
ImmutableMap.of("build.label", "%" + BuildInfo.BUILD_EMBED_LABEL + "|%"));
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final GenericBuildInfoPropertiesTranslator REDACTED_KEYS =
new GenericBuildInfoPropertiesTranslator(
ImmutableMap.<String, String>builder()
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/CqueryProcessor.java b/src/main/java/com/google/devtools/build/lib/buildtool/CqueryProcessor.java
index 64fac98..d2a6079 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/CqueryProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/CqueryProcessor.java
@@ -14,11 +14,10 @@
package com.google.devtools.build.lib.buildtool;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.cmdline.TargetPattern;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
-import com.google.devtools.build.lib.query2.NamedThreadSafeOutputFormatterCallback;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment.TopLevelConfigurations;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.cquery.ConfiguredTargetQueryEnvironment;
import com.google.devtools.build.lib.query2.cquery.CqueryOptions;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
@@ -27,30 +26,14 @@
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.WalkableGraph;
import java.util.Collection;
-import java.util.Optional;
import net.starlark.java.eval.StarlarkSemantics;
/** Performs {@code cquery} processing. */
-public final class CqueryProcessor extends PostAnalysisQueryProcessor<CqueryNode> {
-
- /**
- * Only passed when this is a call from a non query command like Fetch or Vendor, where we don't
- * need the output printed
- */
- private Optional<NamedThreadSafeOutputFormatterCallback<CqueryNode>> noOutputFormatter;
+public final class CqueryProcessor extends PostAnalysisQueryProcessor<ConfiguredTarget> {
public CqueryProcessor(
QueryExpression queryExpression, TargetPattern.Parser mainRepoTargetParser) {
super(queryExpression, mainRepoTargetParser);
- this.noOutputFormatter = Optional.empty();
- }
-
- public CqueryProcessor(
- QueryExpression queryExpression,
- TargetPattern.Parser mainRepoTargetParser,
- Optional<NamedThreadSafeOutputFormatterCallback<CqueryNode>> noOutputFormatter) {
- this(queryExpression, mainRepoTargetParser);
- this.noOutputFormatter = noOutputFormatter;
}
@Override
@@ -83,7 +66,6 @@
request.getTopLevelArtifactContext(),
request
.getOptions(CqueryOptions.class)
- .getLabelPrinter(starlarkSemantics, mainRepoTargetParser.getRepoMapping()),
- noOutputFormatter);
+ .getLabelPrinter(starlarkSemantics, mainRepoTargetParser.getRepoMapping()));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/collect/BUILD b/src/main/java/com/google/devtools/build/lib/collect/BUILD
index c9b0dae..41cfc7c 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/collect/BUILD
@@ -26,10 +26,8 @@
deps = [
"//src/main/java/com/google/devtools/build/lib/collect/compacthashset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
- "//third_party:error_prone_annotations",
"//third_party:guava",
"//third_party:jsr305",
"//third_party/protobuf:protobuf_java",
diff --git a/src/main/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMap.java b/src/main/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMap.java
index cc0ef62..ded1fa7 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMap.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/ImmutableSharedKeyMap.java
@@ -19,7 +19,7 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Interner;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/src/main/java/com/google/devtools/build/lib/collect/IterableCodecs.java b/src/main/java/com/google/devtools/build/lib/collect/IterableCodecs.java
index 092a42c..4061fa2 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/IterableCodecs.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/IterableCodecs.java
@@ -20,7 +20,7 @@
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
@@ -94,5 +94,5 @@
*
* <p>We use this instead of emitting a count to avoid possibly running deduplication twice.
*/
- @SerializationConstant @VisibleForSerialization static final Object DONE = new Object();
+ @SerializationConstant @AutoCodec.VisibleForSerialization static final Object DONE = new Object();
}
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD b/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD
index c1402b6..66db3d2 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD
@@ -33,7 +33,6 @@
"//src/main/java/com/google/devtools/build/lib/packages/semantics",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization:constants",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java
index 0af3626..d7a5df7 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java
@@ -29,8 +29,8 @@
import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;
import com.google.devtools.build.lib.server.FailureDetails.Interrupted;
import com.google.devtools.build.lib.server.FailureDetails.Interrupted.Code;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.DetailedExitCode;
import com.google.devtools.build.lib.util.ExitCode;
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
index 70200b6..fe290b5 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
@@ -15,7 +15,7 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import java.util.HashMap;
@@ -120,28 +120,28 @@
this.emptyDepset = new Depset(null, this.emptySet);
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Order STABLE_ORDER_CONSTANT = STABLE_ORDER;
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Order COMPILE_ORDER_CONSTANT = COMPILE_ORDER;
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Order LINK_ORDER_CONSTANT = LINK_ORDER;
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Order NAIVE_LINK_ORDER_CONSTANT = NAIVE_LINK_ORDER;
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final NestedSet<?> EMPTY_STABLE = STABLE_ORDER.emptySet();
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final NestedSet<?> EMPTY_COMPILE = COMPILE_ORDER.emptySet();
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final NestedSet<?> EMPTY_LINK = LINK_ORDER.emptySet();
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final NestedSet<?> EMPTY_NAIVE_LINK = NAIVE_LINK_ORDER.emptySet();
/**
diff --git a/src/main/java/com/google/devtools/build/lib/io/BUILD b/src/main/java/com/google/devtools/build/lib/io/BUILD
index 4a80a07..5803260 100644
--- a/src/main/java/com/google/devtools/build/lib/io/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/io/BUILD
@@ -60,7 +60,7 @@
srcs = ["FileSymlinkCycleUniquenessFunction.java"],
deps = [
":abstract_chain_uniqueness_function",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -73,7 +73,7 @@
srcs = ["FileSymlinkInfiniteExpansionException.java"],
deps = [
":file_symlink_exception",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//third_party:guava",
],
@@ -84,7 +84,7 @@
srcs = ["FileSymlinkInfiniteExpansionUniquenessFunction.java"],
deps = [
":abstract_chain_uniqueness_function",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
diff --git a/src/main/java/com/google/devtools/build/lib/io/FileSymlinkCycleUniquenessFunction.java b/src/main/java/com/google/devtools/build/lib/io/FileSymlinkCycleUniquenessFunction.java
index 6a26c05..7479bf9 100644
--- a/src/main/java/com/google/devtools/build/lib/io/FileSymlinkCycleUniquenessFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/io/FileSymlinkCycleUniquenessFunction.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.io;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -35,7 +34,7 @@
return Key.create(AbstractFileChainUniquenessFunction.canonicalize(cycle));
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey.WithCachedHashCode<ImmutableList<RootedPath>> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -44,7 +43,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(ImmutableList<RootedPath> arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionException.java b/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionException.java
index d33283b..cc2a02d 100644
--- a/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionException.java
+++ b/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionException.java
@@ -16,7 +16,7 @@
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.vfs.RootedPath;
/** Exception indicating that a symlink has an unbounded expansion on resolution. */
diff --git a/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionUniquenessFunction.java b/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionUniquenessFunction.java
index 0a32173..fac0ee3 100644
--- a/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionUniquenessFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/io/FileSymlinkInfiniteExpansionUniquenessFunction.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.io;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -36,7 +35,7 @@
return Key.create(AbstractFileChainUniquenessFunction.canonicalize(cycle));
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey.WithCachedHashCode<ImmutableList<RootedPath>> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -45,7 +44,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(ImmutableList<RootedPath> arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectsList.java b/src/main/java/com/google/devtools/build/lib/packages/AspectsList.java
index fe50baf..9d355d5 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AspectsList.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AspectsList.java
@@ -21,7 +21,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import java.util.HashMap;
import java.util.LinkedHashMap;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index fefdf56..16cf08c 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -37,7 +37,7 @@
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassNamePredicate;
import com.google.devtools.build.lib.packages.Type.ConversionException;
import com.google.devtools.build.lib.packages.Type.LabelClass;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.starlarkbuildapi.NativeComputedDefaultApi;
import com.google.devtools.build.lib.util.FileType;
@@ -1657,9 +1657,9 @@
}
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static class AlwaysNullLateBoundDefault extends SimpleLateBoundDefault<Void, Void> {
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final AlwaysNullLateBoundDefault INSTANCE = new AlwaysNullLateBoundDefault();
private AlwaysNullLateBoundDefault() {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BUILD b/src/main/java/com/google/devtools/build/lib/packages/BUILD
index 24b258a..04366d6 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/packages/BUILD
@@ -83,7 +83,6 @@
"//src/main/java/com/google/devtools/build/lib/profiler",
"//src/main/java/com/google/devtools/build/lib/skyframe:detailed_exceptions",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java b/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java
index ca51895..320ee9b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageSpecification.java
@@ -21,7 +21,7 @@
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.PathFragment;
import javax.annotation.Nullable;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PredicatesWithMessage.java b/src/main/java/com/google/devtools/build/lib/packages/PredicatesWithMessage.java
index aa553d1..b8fb3ad 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PredicatesWithMessage.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PredicatesWithMessage.java
@@ -13,7 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.packages;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java b/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java
index fab9448..9195a4f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RequiredProviders.java
@@ -19,7 +19,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Objects;
import java.util.function.Function;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Rule.java b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
index f6cc9b7..ca9dac1 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Rule.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
@@ -47,7 +47,7 @@
import com.google.devtools.build.lib.packages.Package.ConfigSettingVisibilityPolicy;
import com.google.devtools.build.lib.packages.RuleClass.ToolchainResolutionMode;
import com.google.devtools.build.lib.server.FailureDetails.PackageLoading;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 50a3f38..0ed3b6d 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -50,8 +50,8 @@
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.RuleFactory.AttributeValues;
import com.google.devtools.build.lib.packages.Type.ConversionException;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.starlarkbuildapi.StarlarkSubruleApi;
import com.google.devtools.build.lib.util.HashCodes;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeAspect.java b/src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeAspect.java
index d498649..2e5aed5 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeAspect.java
@@ -16,13 +16,13 @@
import com.google.common.base.Function;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import net.starlark.java.eval.Printer;
/** A natively-defined aspect that is may be referenced by Starlark attribute definitions. */
public abstract class StarlarkNativeAspect extends NativeAspectClass implements StarlarkAspect {
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Function<Rule, AspectParameters> EMPTY_FUNCTION = input -> AspectParameters.EMPTY;
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFileValue.java b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFileValue.java
index 386110a..efa5166 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFileValue.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFileValue.java
@@ -18,7 +18,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -52,7 +51,7 @@
this.idx = idx;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static WorkspaceFileKey create(RootedPath path, int idx) {
return interner.intern(new WorkspaceFileKey(path, idx));
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD b/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD
index e0aa19b..3d52551 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/BUILD
@@ -36,7 +36,6 @@
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/skyframe:detailed_exceptions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TestFilter.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TestFilter.java
index ac15341..f72338e 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/TestFilter.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TestFilter.java
@@ -22,7 +22,6 @@
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.packages.TestSize;
import com.google.devtools.build.lib.packages.TestTimeout;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.HashSet;
import java.util.List;
@@ -55,7 +54,7 @@
private final ImmutableList<String> testLangFilterList;
private final Predicate<Target> impl;
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
TestFilter(
ImmutableSet<TestSize> testSizeFilterSet,
ImmutableSet<TestTimeout> testTimeoutFilterSet,
diff --git a/src/main/java/com/google/devtools/build/lib/query2/BUILD b/src/main/java/com/google/devtools/build/lib/query2/BUILD
index 8c3327c..d5bd7fd 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/BUILD
@@ -27,7 +27,6 @@
),
deps = [
"//src/main/java/com/google/devtools/build/lib/actions",
- "//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
"//src/main/java/com/google/devtools/build/lib/actions:commandline_item",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
@@ -75,7 +74,6 @@
"//src/main/java/com/google/devtools/build/lib/query2/common:QueryTransitivePackagePreloader",
"//src/main/java/com/google/devtools/build/lib/query2/common:UniverseSkyKey",
"//src/main/java/com/google/devtools/build/lib/query2/common:abstract-blaze-query-env",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/common:options",
"//src/main/java/com/google/devtools/build/lib/query2/common:universe-scope",
"//src/main/java/com/google/devtools/build/lib/query2/compat:fake-load-target",
diff --git a/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
index 0b9c1af..74b8498 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
@@ -24,9 +24,7 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
-import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.analysis.AliasProvider;
-import com.google.devtools.build.lib.analysis.AspectValue;
import com.google.devtools.build.lib.analysis.ConfiguredTargetValue;
import com.google.devtools.build.lib.analysis.TargetAndConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
@@ -76,7 +74,6 @@
import com.google.devtools.build.lib.supplier.InterruptibleSupplier;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyKey;
-import com.google.devtools.build.skyframe.SkyValue;
import com.google.devtools.build.skyframe.WalkableGraph;
import java.io.IOException;
import java.io.OutputStream;
@@ -147,7 +144,7 @@
public abstract String getOutputFormat();
- protected abstract KeyExtractor<T, ActionLookupKey> getConfiguredTargetKeyExtractor();
+ protected abstract KeyExtractor<T, ConfiguredTargetKey> getConfiguredTargetKeyExtractor();
@Override
public QueryEvalResult evaluateQuery(
@@ -220,18 +217,12 @@
protected abstract T getNullConfiguredTarget(Label label) throws InterruptedException;
@Nullable
- public SkyValue getConfiguredTargetValue(SkyKey key) throws InterruptedException {
- return walkableGraphSupplier.get().getValue(key);
- }
-
- @Nullable
- public AspectValue getAspectValue(SkyKey key) throws InterruptedException {
- return (AspectValue) walkableGraphSupplier.get().getValue(key);
+ public ConfiguredTargetValue getConfiguredTargetValue(SkyKey key) throws InterruptedException {
+ return (ConfiguredTargetValue) walkableGraphSupplier.get().getValue(key);
}
private boolean isAliasConfiguredTarget(ConfiguredTargetKey key) throws InterruptedException {
- return AliasProvider.isAlias(
- ((ConfiguredTargetValue) getConfiguredTargetValue(key)).getConfiguredTarget());
+ return AliasProvider.isAlias(getConfiguredTargetValue(key).getConfiguredTarget());
}
public InterruptibleSupplier<ImmutableSet<PathFragment>>
@@ -371,7 +362,7 @@
if (!rdep.functionName().equals(SkyFunctions.CONFIGURED_TARGET)) {
continue;
}
- var actualParentKey = getConfiguredTargetKey(getValueFromKey(rdep));
+ ConfiguredTargetKey actualParentKey = getConfiguredTargetKey(getValueFromKey(rdep));
if (actualParentKey.equals(child)) {
// The parent has the same value as the child because it is delegating.
foundDelegatingRdep = true;
@@ -395,7 +386,7 @@
output.add(rdep);
continue;
}
- var actualParentKey = getConfiguredTargetKey(getValueFromKey(rdep));
+ ConfiguredTargetKey actualParentKey = getConfiguredTargetKey(getValueFromKey(rdep));
if (!actualParentKey.equals(child)) {
output.add(rdep);
continue;
@@ -488,24 +479,19 @@
}
}
- boolean explicitAspects =
- settings.containsAll(ImmutableSet.of(Setting.INCLUDE_ASPECTS, Setting.EXPLICIT_ASPECTS));
-
ImmutableList.Builder<ClassifiedDependency<T>> values = ImmutableList.builder();
- // TODO(bazel-team): The end-goal approach is to treat aspects and toolchains as
+ // TODO(bazel-team): An even better approach would be to treat aspects and toolchains as
// first-class query nodes just like targets. In other words, let query expressions reference
// them (they also have identifying labels) and make the graph connections between targets,
// aspects, and toolchains explicit. That would permit more detailed queries and eliminate the
- // per-key-type special casing below.
- // This is being experimentally implemented in phases. Currently support for aspects has been
- // implemented behind the --experimental_explicit_aspects flag.
- // See https://github.com/bazelbuild/bazel/issues/16310 for details.
+ // per-key-type special casing below. The challenge is to generalize all query code that
+ // currently assumes its inputs are configured targets. Toolchains may have additional caveats:
+ // see b/148550864.
for (SkyKey key : dependencies) {
if (knownCtDeps.contains(key)) {
continue;
}
- if (key.functionName().equals(SkyFunctions.CONFIGURED_TARGET)
- || (explicitAspects && key.functionName().equals(SkyFunctions.ASPECT))) {
+ if (key.functionName().equals(SkyFunctions.CONFIGURED_TARGET)) {
T dependency = getValueFromKey(key);
Preconditions.checkState(
dependency != null,
@@ -515,24 +501,17 @@
+ " configurability team.",
key);
- boolean implicitConfiguredTarget =
+ boolean implicit =
// Check both the original guess key and the second correct key. In the case of the
// target platform, Util.findImplicitDeps also uses the original guess key.
implicitDeps == null
|| implicitDeps.contains(key)
|| implicitDeps.contains(getConfiguredTargetKey(dependency));
-
- boolean implicit =
- !(key.argument() instanceof ConfiguredTargetKey) || implicitConfiguredTarget;
-
values.add(new ClassifiedDependency<>(dependency, implicit));
knownCtDeps.add(key);
} else if (settings.contains(Setting.INCLUDE_ASPECTS)
- && key.functionName().equals(SkyFunctions.ASPECT)) {
- Preconditions.checkState(!settings.contains(Setting.EXPLICIT_ASPECTS));
- if (resolvedAspectClasses.contains(((AspectKey) key).getAspectClass())) {
- continue;
- }
+ && key.functionName().equals(SkyFunctions.ASPECT)
+ && !resolvedAspectClasses.contains(((AspectKey) key).getAspectClass())) {
// When an aspect is attached to an alias configured target, it bypasses standard dependency
// resolution and just Skyframe-loads the same aspect for the alias' referent. That means
// the original aspect's attribute deps aren't Skyframe-resolved through AspectFunction's
@@ -571,8 +550,8 @@
targetifyValues(
fromTargetsByKey.get(fromKey),
entry.getValue(),
- /* knownCtDeps= */ new HashSet<>(),
- /* resolvedAspectClasses= */ new HashSet<>()));
+ /*knownCtDeps=*/ new HashSet<>(),
+ /*resolvedAspectClasses=*/ new HashSet<>()));
}
return result;
}
@@ -607,7 +586,7 @@
@Nullable
protected abstract BuildConfigurationValue getConfiguration(T target);
- protected abstract ActionLookupKey getConfiguredTargetKey(T target);
+ protected abstract ConfiguredTargetKey getConfiguredTargetKey(T target);
@Override
public ThreadSafeMutableSet<T> getTransitiveClosure(
@@ -670,13 +649,11 @@
/** A map of non-null configured top-level targets sorted by configuration checksum. */
private final ImmutableMap<Label, BuildConfigurationValue> nonNulls;
-
/**
* {@code nonNulls} may often have many duplicate values in its value set so we store a sorted
* set of all the non-null configurations here.
*/
private final ImmutableSortedSet<BuildConfigurationValue> nonNullConfigs;
-
/** A list of null configured top-level targets. */
private final ImmutableList<Label> nulls;
diff --git a/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphQueryEnvironment.java
index 4e8bcc0..f5b2e9d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphQueryEnvironment.java
@@ -19,7 +19,6 @@
import com.google.common.util.concurrent.AsyncFunction;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
-import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.ConfiguredTargetValue;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
@@ -71,7 +70,8 @@
private AqueryOptions aqueryOptions;
private AqueryActionFilter actionFilters;
- private final KeyExtractor<ConfiguredTargetValue, ActionLookupKey> configuredTargetKeyExtractor;
+ private final KeyExtractor<ConfiguredTargetValue, ConfiguredTargetKey>
+ configuredTargetKeyExtractor;
private final ConfiguredTargetValueAccessor accessor;
public ActionGraphQueryEnvironment(
@@ -187,7 +187,8 @@
}
@Override
- protected KeyExtractor<ConfiguredTargetValue, ActionLookupKey> getConfiguredTargetKeyExtractor() {
+ protected KeyExtractor<ConfiguredTargetValue, ConfiguredTargetKey>
+ getConfiguredTargetKeyExtractor() {
return configuredTargetKeyExtractor;
}
@@ -201,7 +202,7 @@
@Nullable
private ConfiguredTargetValue createConfiguredTargetValueFromKey(ConfiguredTargetKey key)
throws InterruptedException {
- ConfiguredTargetValue value = (ConfiguredTargetValue) getConfiguredTargetValue(key);
+ ConfiguredTargetValue value = getConfiguredTargetValue(key);
if (value == null
|| !Objects.equals(
value.getConfiguredTarget().getConfigurationKey(), key.getConfigurationKey())) {
@@ -250,7 +251,7 @@
@Override
protected ConfiguredTargetValue getValueFromKey(SkyKey key) throws InterruptedException {
Preconditions.checkState(key instanceof ConfiguredTargetKey);
- return (ConfiguredTargetValue) getConfiguredTargetValue(key);
+ return getConfiguredTargetValue(key);
}
@Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/query2/aquery/ConfiguredTargetValueAccessor.java b/src/main/java/com/google/devtools/build/lib/query2/aquery/ConfiguredTargetValueAccessor.java
index e0c9112..03c83bf 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/aquery/ConfiguredTargetValueAccessor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/aquery/ConfiguredTargetValueAccessor.java
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.analysis.AspectValue;
import com.google.devtools.build.lib.analysis.ConfiguredTargetValue;
import com.google.devtools.build.lib.cmdline.Label;
@@ -33,6 +32,7 @@
import com.google.devtools.build.lib.server.FailureDetails.ActionQuery;
import com.google.devtools.build.lib.server.FailureDetails.ConfigurableQuery;
import com.google.devtools.build.lib.skyframe.AspectKeyCreator.AspectKey;
+import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -50,12 +50,13 @@
private final WalkableGraph walkableGraph;
private final TargetLookup targetLookup;
- private final KeyExtractor<ConfiguredTargetValue, ActionLookupKey> configuredTargetKeyExtractor;
+ private final KeyExtractor<ConfiguredTargetValue, ConfiguredTargetKey>
+ configuredTargetKeyExtractor;
public ConfiguredTargetValueAccessor(
WalkableGraph walkableGraph,
TargetLookup targetLookup,
- KeyExtractor<ConfiguredTargetValue, ActionLookupKey> configuredTargetKeyExtractor) {
+ KeyExtractor<ConfiguredTargetValue, ConfiguredTargetKey> configuredTargetKeyExtractor) {
this.walkableGraph = walkableGraph;
this.targetLookup = targetLookup;
this.configuredTargetKeyExtractor = configuredTargetKeyExtractor;
diff --git a/src/main/java/com/google/devtools/build/lib/query2/common/BUILD b/src/main/java/com/google/devtools/build/lib/query2/common/BUILD
index bff6ce0..331ba8d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/common/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/query2/common/BUILD
@@ -12,23 +12,6 @@
)
java_library(
- name = "cquery-node",
- srcs = [
- "CqueryNode.java",
- ],
- deps = [
- "//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key",
- "//src/main/java/com/google/devtools/build/lib/analysis:config/config_matching_provider",
- "//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/packages:label_printer",
- "//src/main/java/com/google/devtools/build/lib/skyframe/config",
- "//src/main/java/net/starlark/java/eval",
- "//third_party:guava",
- "//third_party:jsr305",
- ],
-)
-
-java_library(
name = "abstract-blaze-query-env",
srcs = [
"AbstractBlazeQueryEnvironment.java",
diff --git a/src/main/java/com/google/devtools/build/lib/query2/common/CommonQueryOptions.java b/src/main/java/com/google/devtools/build/lib/query2/common/CommonQueryOptions.java
index a6c6077..9c534e2 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/common/CommonQueryOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/common/CommonQueryOptions.java
@@ -151,16 +151,6 @@
+ " will not be omitted.")
public boolean incompatiblePackageGroupIncludesDoubleSlash;
- @Option(
- name = "experimental_explicit_aspects",
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.QUERY,
- effectTags = {OptionEffectTag.TERMINAL_OUTPUT},
- help =
- "aquery, cquery: whether to include aspect-generated actions in the output. "
- + "query: no-op (aspects are always followed).")
- public boolean explicitAspects;
-
/** Return the current options as a set of QueryEnvironment settings. */
public Set<Setting> toSettings() {
Set<Setting> settings = EnumSet.noneOf(Setting.class);
@@ -176,9 +166,6 @@
if (useAspects) {
settings.add(Setting.INCLUDE_ASPECTS);
}
- if (explicitAspects) {
- settings.add(Setting.EXPLICIT_ASPECTS);
- }
return settings;
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/common/CqueryNode.java b/src/main/java/com/google/devtools/build/lib/query2/common/CqueryNode.java
deleted file mode 100644
index fef9844..0000000
--- a/src/main/java/com/google/devtools/build/lib/query2/common/CqueryNode.java
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2023 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.query2.common;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.actions.ActionLookupKey;
-import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.packages.LabelPrinter;
-import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
-import javax.annotation.Nullable;
-import net.starlark.java.eval.Dict;
-
-/**
- * A {@link CqueryNode} provides information necessary to traverse different types of nodes that can
- * be visited during a {@link CqueryCommand} call. This may include {@link ConfiguredTarget}, {@link
- * AspectKey}, and transition nodes.
- */
-public interface CqueryNode {
- /** Returns a key that may be used to lookup this {@link CqueryNode}. */
- ActionLookupKey getLookupKey();
-
- default Label getLabel() {
- return getLookupKey().getLabel();
- }
-
- default String getDescription(LabelPrinter labelPrinter) {
- return labelPrinter.toString(getOriginalLabel());
- }
-
- @Nullable
- default String getConfigurationChecksum() {
- return getConfigurationKey() == null ? null : getConfigurationKey().getOptions().checksum();
- }
-
- /**
- * Returns the {@link BuildConfigurationKey} naming the {@link
- * com.google.devtools.build.lib.analysis.config.BuildConfigurationValue} for which this cquery
- * node is defined. Configuration is defined for all configured targets with exception of {@link
- * com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfiguredTarget} and {@link
- * com.google.devtools.build.lib.analysis.configuredtargets.PackageGroupConfiguredTarget} for
- * which it is always <b>null</b>.
- *
- * <p>If this changes, {@link AspectResolver#aspectMatchesConfiguredTarget} should be updated.
- */
- @Nullable
- default BuildConfigurationKey getConfigurationKey() {
- return getLookupKey().getConfigurationKey();
- }
-
- /**
- * If the configured target is an alias, return the actual target, otherwise return the current
- * target. This follows alias chains.
- */
- default CqueryNode getActual() {
- return this;
- }
-
- /**
- * If the configured target is an alias, return the original label, otherwise return the current
- * label. This is not the same as {@code getActual().getLabel()}, because it does not follow alias
- * chains.
- */
- default Label getOriginalLabel() {
- return getLabel();
- }
-
- /**
- * The configuration conditions that trigger this configured target's configurable attributes. For
- * targets that do not support configurable attributes, this will be an empty map.
- */
- default ImmutableMap<Label, ConfigMatchingProvider> getConfigConditions() {
- return ImmutableMap.of();
- }
-
- default boolean isRuleConfiguredTarget() {
- return false;
- }
-
- /**
- * The base configured target if it has been merged with aspects otherwise the current value.
- *
- * <p>Unwrapping is recursive if there are multiple layers.
- */
- default CqueryNode unwrapIfMerged() {
- return this;
- }
-
- /**
- * This is only intended to be called from the query dialects of Starlark.
- *
- * @return a map of provider names to their values, or null if there are no providers
- */
- @Nullable
- default Dict<String, Object> getProvidersDictForQuery() {
- return null;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java
index 5b4bc33..6ee85ab 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.query2.cquery;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.configuredtargets.OutputFileConfiguredTarget;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.Attribute;
@@ -22,7 +23,6 @@
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.query2.query.output.BuildOutputFormatter;
import com.google.devtools.build.lib.query2.query.output.BuildOutputFormatter.AttributeReader;
@@ -42,7 +42,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
LabelPrinter labelPrinter) {
super(eventHandler, options, out, skyframeExecutor, accessor, /* uniquifyResults= */ false);
this.labelPrinter = labelPrinter;
@@ -73,7 +73,8 @@
}
@Nullable
- private ConfiguredAttributeMapper getAttributeMap(CqueryNode kct) throws InterruptedException {
+ private ConfiguredAttributeMapper getAttributeMap(ConfiguredTarget kct)
+ throws InterruptedException {
Rule associatedRule = accessor.getTarget(kct).getAssociatedRule();
if (associatedRule == null) {
return null;
@@ -93,7 +94,7 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult)
+ public void processOutput(Iterable<ConfiguredTarget> partialResult)
throws InterruptedException, IOException {
BuildOutputFormatter.TargetOutputter outputter =
new TargetOutputter(
@@ -105,7 +106,7 @@
(rule, attr) -> false,
System.lineSeparator(),
labelPrinter);
- for (CqueryNode configuredTarget : partialResult) {
+ for (ConfiguredTarget configuredTarget : partialResult) {
Target target = accessor.getTarget(configuredTarget);
outputter.output(target, new CqueryAttributeReader(getAttributeMap(configuredTarget)));
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfigFunction.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfigFunction.java
index a31868a..1b105be 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfigFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfigFunction.java
@@ -14,8 +14,8 @@
package com.google.devtools.build.lib.query2.cquery;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.query2.common.AbstractBlazeQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.Callback;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Argument;
@@ -59,7 +59,7 @@
/**
* This function is only viable with ConfiguredTargetQueryEnvironment which extends {@link
- * AbstractBlazeQueryEnvironment <CqueryNode>}.
+ * AbstractBlazeQueryEnvironment <ConfiguredTarget>}.
*/
@Override
@SuppressWarnings("unchecked")
@@ -85,6 +85,6 @@
targetExpression.toString(),
targetsFuture,
configuration,
- (Callback<CqueryNode>) callback));
+ (Callback<ConfiguredTarget>) callback));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
index 6df105f..c25a6e6 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
@@ -29,7 +29,6 @@
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.TargetUtils;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetNotFoundException;
import com.google.devtools.build.lib.query2.engine.QueryException;
@@ -48,7 +47,7 @@
*
* <p>Incomplete; we'll implement getVisibility when needed.
*/
-public class ConfiguredTargetAccessor implements TargetAccessor<CqueryNode> {
+public class ConfiguredTargetAccessor implements TargetAccessor<ConfiguredTarget> {
private final WalkableGraph walkableGraph;
private final ConfiguredTargetQueryEnvironment queryEnvironment;
@@ -75,55 +74,56 @@
}
@Override
- public String getTargetKind(CqueryNode target) {
+ public String getTargetKind(ConfiguredTarget target) {
Target actualTarget = getTarget(target);
return actualTarget.getTargetKind();
}
@Override
- public String getLabel(CqueryNode target) {
+ public String getLabel(ConfiguredTarget target) {
return target.getOriginalLabel().toString();
}
@Override
- public String getPackage(CqueryNode target) {
+ public String getPackage(ConfiguredTarget target) {
return target.getOriginalLabel().getPackageIdentifier().getPackageFragment().toString();
}
@Override
- public boolean isRule(CqueryNode target) {
+ public boolean isRule(ConfiguredTarget target) {
Target actualTarget = getTarget(target);
return actualTarget instanceof Rule;
}
@Override
- public boolean isTestRule(CqueryNode target) {
+ public boolean isTestRule(ConfiguredTarget target) {
Target actualTarget = getTarget(target);
return TargetUtils.isTestRule(actualTarget);
}
@Override
- public boolean isTestSuite(CqueryNode target) {
+ public boolean isTestSuite(ConfiguredTarget target) {
Target actualTarget = getTarget(target);
return TargetUtils.isTestSuiteRule(actualTarget);
}
@Override
- public List<CqueryNode> getPrerequisites(
+ public List<ConfiguredTarget> getPrerequisites(
QueryExpression caller,
- CqueryNode keyedConfiguredTarget,
+ ConfiguredTarget keyedConfiguredTarget,
String attrName,
String errorMsgPrefix)
throws QueryException, InterruptedException {
// Process aliases.
- CqueryNode actual = keyedConfiguredTarget.getActual();
+ ConfiguredTarget actual = keyedConfiguredTarget.getActual();
Preconditions.checkArgument(
isRule(actual), "%s %s is not a rule configured target", errorMsgPrefix, getLabel(actual));
- ImmutableListMultimap<Label, CqueryNode> depsByLabel =
+ ImmutableListMultimap<Label, ConfiguredTarget> depsByLabel =
Multimaps.index(
- queryEnvironment.getFwdDeps(ImmutableList.of(actual)), CqueryNode::getOriginalLabel);
+ queryEnvironment.getFwdDeps(ImmutableList.of(actual)),
+ ConfiguredTarget::getOriginalLabel);
Rule rule = (Rule) getTarget(actual);
ImmutableMap<Label, ConfigMatchingProvider> configConditions = actual.getConfigConditions();
@@ -141,39 +141,39 @@
errorMsgPrefix, rule.getRuleClass(), attrName),
ConfigurableQuery.Code.ATTRIBUTE_MISSING);
}
- ImmutableList.Builder<CqueryNode> toReturn = ImmutableList.builder();
+ ImmutableList.Builder<ConfiguredTarget> toReturn = ImmutableList.builder();
attributeMapper.visitLabels(attrName, label -> toReturn.addAll(depsByLabel.get(label)));
return toReturn.build();
}
@Override
- public List<String> getStringListAttr(CqueryNode target, String attrName) {
+ public List<String> getStringListAttr(ConfiguredTarget target, String attrName) {
Target actualTarget = getTarget(target);
return TargetUtils.getStringListAttr(actualTarget, attrName);
}
@Override
- public String getStringAttr(CqueryNode target, String attrName) {
+ public String getStringAttr(ConfiguredTarget target, String attrName) {
Target actualTarget = getTarget(target);
return TargetUtils.getStringAttr(actualTarget, attrName);
}
@Override
- public Iterable<String> getAttrAsString(CqueryNode target, String attrName) {
+ public Iterable<String> getAttrAsString(ConfiguredTarget target, String attrName) {
Target actualTarget = getTarget(target);
return TargetUtils.getAttrAsString(actualTarget, attrName);
}
@Override
- public ImmutableSet<QueryVisibility<CqueryNode>> getVisibility(
- QueryExpression caller, CqueryNode from) throws QueryException {
+ public ImmutableSet<QueryVisibility<ConfiguredTarget>> getVisibility(
+ QueryExpression caller, ConfiguredTarget from) throws QueryException {
// TODO(bazel-team): implement this if needed.
throw new QueryException(
"visible() is not supported on configured targets",
ConfigurableQuery.Code.VISIBLE_FUNCTION_NOT_SUPPORTED);
}
- public Target getTarget(CqueryNode configuredTarget) {
+ public Target getTarget(ConfiguredTarget configuredTarget) {
// Dereference any aliases that might be present.
Label label = configuredTarget.getOriginalLabel();
try {
@@ -190,7 +190,8 @@
}
/** Returns the rule that generates the given output file. */
- RuleConfiguredTarget getGeneratingConfiguredTarget(CqueryNode kct) throws InterruptedException {
+ RuleConfiguredTarget getGeneratingConfiguredTarget(ConfiguredTarget kct)
+ throws InterruptedException {
Preconditions.checkArgument(kct instanceof OutputFileConfiguredTarget);
return (RuleConfiguredTarget)
((ConfiguredTargetValue)
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java
index 1ec7f14..45284c8 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryEnvironment.java
@@ -23,8 +23,6 @@
import com.google.common.util.concurrent.AsyncFunction;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
-import com.google.devtools.build.lib.actions.ActionLookupKey;
-import com.google.devtools.build.lib.analysis.AspectValue;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.ConfiguredTargetValue;
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
@@ -42,7 +40,6 @@
import com.google.devtools.build.lib.query2.NamedThreadSafeOutputFormatterCallback;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
import com.google.devtools.build.lib.query2.SkyQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.cquery.ProtoOutputFormatterCallback.OutputType;
import com.google.devtools.build.lib.query2.engine.Callback;
import com.google.devtools.build.lib.query2.engine.KeyExtractor;
@@ -53,12 +50,10 @@
import com.google.devtools.build.lib.query2.query.aspectresolvers.AspectResolver;
import com.google.devtools.build.lib.rules.AliasConfiguredTarget;
import com.google.devtools.build.lib.server.FailureDetails.ConfigurableQuery;
-import com.google.devtools.build.lib.skyframe.AspectKeyCreator.AspectKey;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
import com.google.devtools.build.skyframe.SkyKey;
-import com.google.devtools.build.skyframe.SkyValue;
import com.google.devtools.build.skyframe.WalkableGraph;
import java.io.OutputStream;
import java.util.ArrayList;
@@ -66,7 +61,6 @@
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
-import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Supplier;
@@ -77,11 +71,11 @@
* {@link QueryEnvironment} that runs queries over the configured target (analysis) graph.
*
* <p>Aspects are partially supported. Their dependencies appear as implicit dependencies on the
- * targets they're connected to. When using the --experimental_explicit_aspects flag, the aspects
- * themselves are visible as query nodes. See https://github.com/bazelbuild/bazel/issues/16310 for
- * details.
+ * targets they're connected to, but the aspects themselves aren't visible as query nodes. See
+ * comments on {@link PostAnalysisQueryEnvironment#targetifyValues} and b/163052263 for details.
*/
-public class ConfiguredTargetQueryEnvironment extends PostAnalysisQueryEnvironment<CqueryNode> {
+public class ConfiguredTargetQueryEnvironment
+ extends PostAnalysisQueryEnvironment<ConfiguredTarget> {
/** Common query functions and cquery specific functions. */
public static final ImmutableList<QueryFunction> FUNCTIONS = populateFunctions();
/** Cquery specific functions. */
@@ -91,18 +85,12 @@
private final TopLevelArtifactContext topLevelArtifactContext;
- private final KeyExtractor<CqueryNode, ActionLookupKey> configuredTargetKeyExtractor;
+ private final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey> configuredTargetKeyExtractor;
private final ConfiguredTargetAccessor accessor;
/**
- * Only passed when this is a call from a non query command like Fetch or Vendor, where we don't
- * need the output printed
- */
- private Optional<NamedThreadSafeOutputFormatterCallback<CqueryNode>> noOutputFormatter;
-
- /**
- * F Stores every configuration in the transitive closure of the build graph as a map from its
+ * Stores every configuration in the transitive closure of the build graph as a map from its
* user-friendly hash to the configuration itself.
*
* <p>This is used to find configured targets in, e.g. {@code somepath} queries. Given {@code
@@ -119,7 +107,7 @@
private final ImmutableMap<String, BuildConfigurationValue> transitiveConfigurations;
@Override
- protected KeyExtractor<CqueryNode, ActionLookupKey> getConfiguredTargetKeyExtractor() {
+ protected KeyExtractor<ConfiguredTarget, ConfiguredTargetKey> getConfiguredTargetKeyExtractor() {
return configuredTargetKeyExtractor;
}
@@ -147,7 +135,7 @@
settings,
labelPrinter);
this.accessor = new ConfiguredTargetAccessor(walkableGraphSupplier.get(), this);
- this.configuredTargetKeyExtractor = CqueryNode::getLookupKey;
+ this.configuredTargetKeyExtractor = ConfiguredTargetKey::fromConfiguredTarget;
this.transitiveConfigurations =
getTransitiveConfigurations(transitiveConfigurationKeys, walkableGraphSupplier.get());
this.topLevelArtifactContext = topLevelArtifactContext;
@@ -164,8 +152,7 @@
Supplier<WalkableGraph> walkableGraphSupplier,
CqueryOptions cqueryOptions,
TopLevelArtifactContext topLevelArtifactContext,
- LabelPrinter labelPrinter,
- Optional<NamedThreadSafeOutputFormatterCallback<CqueryNode>> noOutputFormatter)
+ LabelPrinter labelPrinter)
throws InterruptedException {
this(
keepGoing,
@@ -180,7 +167,6 @@
topLevelArtifactContext,
labelPrinter);
this.cqueryOptions = cqueryOptions;
- this.noOutputFormatter = noOutputFormatter;
}
private static ImmutableList<QueryFunction> populateFunctions() {
@@ -206,9 +192,9 @@
}
@Override
- public ImmutableList<NamedThreadSafeOutputFormatterCallback<CqueryNode>>
+ public ImmutableList<NamedThreadSafeOutputFormatterCallback<ConfiguredTarget>>
getDefaultOutputFormatters(
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
ExtendedEventHandler eventHandler,
OutputStream out,
SkyframeExecutor skyframeExecutor,
@@ -218,112 +204,78 @@
throws QueryException, InterruptedException {
AspectResolver aspectResolver =
cqueryOptions.aspectDeps.createResolver(packageManager, eventHandler);
- ImmutableList.Builder<NamedThreadSafeOutputFormatterCallback<CqueryNode>> formatters =
- ImmutableList.<NamedThreadSafeOutputFormatterCallback<CqueryNode>>builder()
- .add(
- new LabelAndConfigurationOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- true,
- getLabelPrinter()),
- new LabelAndConfigurationOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- false,
- getLabelPrinter()),
- new TransitionsOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- ruleClassProvider,
- getLabelPrinter()),
- new ProtoOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- aspectResolver,
- OutputType.BINARY,
- ruleClassProvider,
- getLabelPrinter()),
- new ProtoOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- aspectResolver,
- OutputType.DELIMITED_BINARY,
- ruleClassProvider,
- labelPrinter),
- new ProtoOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- aspectResolver,
- OutputType.TEXT,
- ruleClassProvider,
- getLabelPrinter()),
- new ProtoOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- aspectResolver,
- OutputType.JSON,
- ruleClassProvider,
- getLabelPrinter()),
- new BuildOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- getLabelPrinter()),
- new GraphOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- kct -> getFwdDeps(ImmutableList.of(kct)),
- getLabelPrinter()),
- new StarlarkOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- starlarkSemantics),
- new FilesOutputFormatterCallback(
- eventHandler,
- cqueryOptions,
- out,
- skyframeExecutor,
- accessor,
- topLevelArtifactContext));
-
- if (noOutputFormatter.isPresent()) {
- formatters.add(noOutputFormatter.get());
- }
- return formatters.build();
+ return ImmutableList.of(
+ new LabelAndConfigurationOutputFormatterCallback(
+ eventHandler, cqueryOptions, out, skyframeExecutor, accessor, true, getLabelPrinter()),
+ new LabelAndConfigurationOutputFormatterCallback(
+ eventHandler, cqueryOptions, out, skyframeExecutor, accessor, false, getLabelPrinter()),
+ new TransitionsOutputFormatterCallback(
+ eventHandler,
+ cqueryOptions,
+ out,
+ skyframeExecutor,
+ accessor,
+ ruleClassProvider,
+ getLabelPrinter()),
+ new ProtoOutputFormatterCallback(
+ eventHandler,
+ cqueryOptions,
+ out,
+ skyframeExecutor,
+ accessor,
+ aspectResolver,
+ OutputType.BINARY,
+ ruleClassProvider,
+ getLabelPrinter()),
+ new ProtoOutputFormatterCallback(
+ eventHandler,
+ cqueryOptions,
+ out,
+ skyframeExecutor,
+ accessor,
+ aspectResolver,
+ OutputType.DELIMITED_BINARY,
+ ruleClassProvider,
+ labelPrinter),
+ new ProtoOutputFormatterCallback(
+ eventHandler,
+ cqueryOptions,
+ out,
+ skyframeExecutor,
+ accessor,
+ aspectResolver,
+ OutputType.TEXT,
+ ruleClassProvider,
+ getLabelPrinter()),
+ new ProtoOutputFormatterCallback(
+ eventHandler,
+ cqueryOptions,
+ out,
+ skyframeExecutor,
+ accessor,
+ aspectResolver,
+ OutputType.JSON,
+ ruleClassProvider,
+ getLabelPrinter()),
+ new BuildOutputFormatterCallback(
+ eventHandler, cqueryOptions, out, skyframeExecutor, accessor, getLabelPrinter()),
+ new GraphOutputFormatterCallback(
+ eventHandler,
+ cqueryOptions,
+ out,
+ skyframeExecutor,
+ accessor,
+ kct -> getFwdDeps(ImmutableList.of(kct)),
+ getLabelPrinter()),
+ new StarlarkOutputFormatterCallback(
+ eventHandler, cqueryOptions, out, skyframeExecutor, accessor, starlarkSemantics),
+ new FilesOutputFormatterCallback(
+ eventHandler, cqueryOptions, out, skyframeExecutor, accessor, topLevelArtifactContext));
}
@Override
public String getOutputFormat() {
- return noOutputFormatter.isPresent() ? "no_output" : cqueryOptions.outputFormat;
+ return cqueryOptions.outputFormat;
}
@Override
@@ -333,7 +285,7 @@
@Override
public QueryTaskFuture<Void> getTargetsMatchingPattern(
- QueryExpression owner, String pattern, Callback<CqueryNode> callback) {
+ QueryExpression owner, String pattern, Callback<ConfiguredTarget> callback) {
TargetPattern patternToEval;
try {
patternToEval = getPattern(pattern);
@@ -359,7 +311,7 @@
/* excludedSubdirectories= */ ImmutableSet.of(),
(Callback<Target>)
partialResult -> {
- List<CqueryNode> transformedResult = new ArrayList<>();
+ List<ConfiguredTarget> transformedResult = new ArrayList<>();
for (Target target : partialResult) {
transformedResult.addAll(
getConfiguredTargetsForConfigFunction(target.getLabel()));
@@ -373,13 +325,14 @@
}
/**
- * Returns the {@link CqueryNode} for the given label and configuration if it exists, else null.
+ * Returns the {@link ConfiguredTarget} for the given label and configuration if it exists, else
+ * null.
*/
@Nullable
- private CqueryNode getConfiguredTarget(
+ private ConfiguredTarget getConfiguredTarget(
Label label, @Nullable BuildConfigurationValue configuration) throws InterruptedException {
BuildConfigurationKey configurationKey = configuration == null ? null : configuration.getKey();
- CqueryNode target =
+ ConfiguredTarget target =
getValueFromKey(
ConfiguredTargetKey.builder()
.setLabel(label)
@@ -393,25 +346,11 @@
return target;
}
- /**
- * Returns the {@link CqueryNode} for the given key if its value is a supported instance of
- * CqueryNode. This function can only receive keys of node types that the calling logic can
- * support. For example, if the caller does not support handling of AspectKey types of
- * CqueryNodes, then this function should not be called with an AspectKey key.
- */
@Override
@Nullable
- protected CqueryNode getValueFromKey(SkyKey key) throws InterruptedException {
- SkyValue value = getConfiguredTargetValue(key);
- if (value == null) {
- return null;
- } else if (value instanceof ConfiguredTargetValue) {
- return ((ConfiguredTargetValue) value).getConfiguredTarget();
- } else if (value instanceof AspectValue && key instanceof AspectKey) {
- return (AspectKey) key;
- } else {
- throw new IllegalStateException("unknown value type for CqueryNode");
- }
+ protected ConfiguredTarget getValueFromKey(SkyKey key) throws InterruptedException {
+ ConfiguredTargetValue value = getConfiguredTargetValue(key);
+ return value == null ? null : value.getConfiguredTarget();
}
/**
@@ -419,16 +358,16 @@
*
* <p>If there are no matches, returns an empty list.
*/
- private ImmutableList<CqueryNode> getConfiguredTargetsForConfigFunction(Label label)
+ private ImmutableList<ConfiguredTarget> getConfiguredTargetsForConfigFunction(Label label)
throws InterruptedException {
- ImmutableList.Builder<CqueryNode> ans = ImmutableList.builder();
+ ImmutableList.Builder<ConfiguredTarget> ans = ImmutableList.builder();
for (BuildConfigurationValue config : transitiveConfigurations.values()) {
- CqueryNode kct = getConfiguredTarget(label, config);
+ ConfiguredTarget kct = getConfiguredTarget(label, config);
if (kct != null) {
ans.add(kct);
}
}
- CqueryNode nullConfiguredTarget = getNullConfiguredTarget(label);
+ ConfiguredTarget nullConfiguredTarget = getNullConfiguredTarget(label);
if (nullConfiguredTarget != null) {
ans.add(nullConfiguredTarget);
}
@@ -453,19 +392,19 @@
String pattern,
QueryTaskFuture<ThreadSafeMutableSet<T>> targetsFuture,
String configPrefix,
- Callback<CqueryNode> callback) {
+ Callback<ConfiguredTarget> callback) {
// There's no technical reason other callers beside ConfigFunction can't call this. But they'd
// need to adjust the error messaging below to not make it config()-specific. Please don't just
// remove that line: the counter-priority is making error messages as clear, precise, and
// actionable as possible.
return () -> {
- ThreadSafeMutableSet<CqueryNode> targets =
- (ThreadSafeMutableSet<CqueryNode>) targetsFuture.getIfSuccessful();
- List<CqueryNode> transformedResult = new ArrayList<>();
+ ThreadSafeMutableSet<ConfiguredTarget> targets =
+ (ThreadSafeMutableSet<ConfiguredTarget>) targetsFuture.getIfSuccessful();
+ List<ConfiguredTarget> transformedResult = new ArrayList<>();
boolean userFriendlyConfigName = true;
- for (CqueryNode target : targets) {
+ for (ConfiguredTarget target : targets) {
Label label = getCorrectLabel(target);
- CqueryNode keyedConfiguredTarget;
+ ConfiguredTarget keyedConfiguredTarget;
switch (configPrefix) {
case "host":
throw new QueryException(
@@ -540,19 +479,19 @@
* the "actual" target instead of the alias target. Grr.
*/
@Override
- public Label getCorrectLabel(CqueryNode target) {
+ public Label getCorrectLabel(ConfiguredTarget target) {
// Dereference any aliases that might be present.
return target.getOriginalLabel();
}
@Nullable
@Override
- protected CqueryNode getTargetConfiguredTarget(Label label) throws InterruptedException {
+ protected ConfiguredTarget getTargetConfiguredTarget(Label label) throws InterruptedException {
if (topLevelConfigurations.isTopLevelTarget(label)) {
return getConfiguredTarget(
label, topLevelConfigurations.getConfigurationForTopLevelTarget(label));
} else {
- CqueryNode toReturn;
+ ConfiguredTarget toReturn;
for (BuildConfigurationValue configuration : topLevelConfigurations.getConfigurations()) {
toReturn = getConfiguredTarget(label, configuration);
if (toReturn != null) {
@@ -565,13 +504,13 @@
@Nullable
@Override
- protected CqueryNode getNullConfiguredTarget(Label label) throws InterruptedException {
+ protected ConfiguredTarget getNullConfiguredTarget(Label label) throws InterruptedException {
return getConfiguredTarget(label, null);
}
@Nullable
@Override
- protected RuleConfiguredTarget getRuleConfiguredTarget(CqueryNode configuredTarget) {
+ protected RuleConfiguredTarget getRuleConfiguredTarget(ConfiguredTarget configuredTarget) {
if (configuredTarget instanceof RuleConfiguredTarget) {
return (RuleConfiguredTarget) configuredTarget;
}
@@ -580,7 +519,7 @@
@Nullable
@Override
- protected BuildConfigurationValue getConfiguration(CqueryNode target) {
+ protected BuildConfigurationValue getConfiguration(ConfiguredTarget target) {
try {
return target.getConfigurationKey() == null
? null
@@ -591,13 +530,15 @@
}
@Override
- protected ActionLookupKey getConfiguredTargetKey(CqueryNode target) {
- return target.getLookupKey();
+ protected ConfiguredTargetKey getConfiguredTargetKey(ConfiguredTarget target) {
+ return ConfiguredTargetKey.fromConfiguredTarget(target);
}
@Override
- public ThreadSafeMutableSet<CqueryNode> createThreadSafeMutableSet() {
+ public ThreadSafeMutableSet<ConfiguredTarget> createThreadSafeMutableSet() {
return new ThreadSafeMutableKeyExtractorBackedSetImpl<>(
- configuredTargetKeyExtractor, CqueryNode.class, SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
+ configuredTargetKeyExtractor,
+ ConfiguredTarget.class,
+ SkyQueryEnvironment.DEFAULT_THREAD_COUNT);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryThreadsafeCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryThreadsafeCallback.java
index 73f92b2..178eee9 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryThreadsafeCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryThreadsafeCallback.java
@@ -15,10 +15,10 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.query2.NamedThreadSafeOutputFormatterCallback;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
@@ -42,7 +42,7 @@
* focused on completeness, should output full configuration checksums.
*/
public abstract class CqueryThreadsafeCallback
- extends NamedThreadSafeOutputFormatterCallback<CqueryNode> {
+ extends NamedThreadSafeOutputFormatterCallback<ConfiguredTarget> {
protected final ExtendedEventHandler eventHandler;
protected final CqueryOptions options;
@@ -64,7 +64,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
boolean uniquifyResults) {
this.eventHandler = eventHandler;
this.options = options;
@@ -119,3 +119,4 @@
return config == null ? "null" : config.shortId();
}
}
+
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryTransitionResolver.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryTransitionResolver.java
index f9e9acf..16ae3e2 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryTransitionResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/CqueryTransitionResolver.java
@@ -24,6 +24,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimaps;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.DependencyKind;
import com.google.devtools.build.lib.analysis.DependencyKind.NonAttributeDependencyKind;
import com.google.devtools.build.lib.analysis.DependencyKind.ToolchainDependencyKind;
@@ -42,7 +43,6 @@
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetEvaluationExceptions.ReportedException;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetEvaluationExceptions.UnreportedException;
@@ -126,7 +126,7 @@
* @see ResolvedTransition for more details.
* @param configuredTarget the configured target whose dependencies are being looked up.
*/
- public ImmutableSet<ResolvedTransition> dependencies(CqueryNode configuredTarget)
+ public ImmutableSet<ResolvedTransition> dependencies(ConfiguredTarget configuredTarget)
throws EvaluateException, InterruptedException {
if (!(configuredTarget instanceof RuleConfiguredTarget)) {
return ImmutableSet.of();
@@ -250,7 +250,7 @@
}
@Nullable
- private ConfigurationTransition getRuleTransition(CqueryNode configuredTarget) {
+ private ConfigurationTransition getRuleTransition(ConfiguredTarget configuredTarget) {
if (configuredTarget instanceof RuleConfiguredTarget) {
return computeTransition(
accessor.getTarget(configuredTarget).getAssociatedRule(),
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallback.java
index eafe800..f873120 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallback.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.analysis.TopLevelArtifactHelper;
import com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfiguredTarget;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import java.io.IOException;
@@ -37,7 +36,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
TopLevelArtifactContext topLevelArtifactContext) {
// Different targets may provide the same artifact, so we deduplicate the collection of all
// results at the end.
@@ -51,17 +50,14 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult)
+ public void processOutput(Iterable<ConfiguredTarget> partialResult)
throws IOException, InterruptedException {
- for (CqueryNode target : partialResult) {
- if (!(target instanceof ConfiguredTarget)
- || (!TopLevelArtifactHelper.shouldConsiderForDisplay(target)
- && !(target instanceof InputFileConfiguredTarget))) {
+ for (ConfiguredTarget target : partialResult) {
+ if (!TopLevelArtifactHelper.shouldConsiderForDisplay(target)
+ && !(target instanceof InputFileConfiguredTarget)) {
continue;
}
-
- var cf = (ConfiguredTarget) target;
- TopLevelArtifactHelper.getAllArtifactsToBuild(cf, topLevelArtifactContext)
+ TopLevelArtifactHelper.getAllArtifactsToBuild(target, topLevelArtifactContext)
.getImportantArtifacts()
.toList()
.stream()
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallback.java
index a03dfcf..d42edca 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallback.java
@@ -15,12 +15,12 @@
package com.google.devtools.build.lib.query2.cquery;
import com.google.common.collect.ImmutableSet;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.graph.Digraph;
import com.google.devtools.build.lib.graph.Node;
import com.google.devtools.build.lib.packages.LabelPrinter;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.query2.query.output.GraphOutputWriter;
import com.google.devtools.build.lib.query2.query.output.GraphOutputWriter.NodeReader;
@@ -38,15 +38,15 @@
/** Interface for finding a configured target's direct dependencies. */
@FunctionalInterface
public interface DepsRetriever {
- Iterable<CqueryNode> getDirectDeps(CqueryNode target) throws InterruptedException;
+ Iterable<ConfiguredTarget> getDirectDeps(ConfiguredTarget target) throws InterruptedException;
}
private final DepsRetriever depsRetriever;
- private final GraphOutputWriter.NodeReader<CqueryNode> nodeReader =
- new NodeReader<CqueryNode>() {
+ private final GraphOutputWriter.NodeReader<ConfiguredTarget> nodeReader =
+ new NodeReader<ConfiguredTarget>() {
- private final Comparator<CqueryNode> configuredTargetOrdering =
+ private final Comparator<ConfiguredTarget> configuredTargetOrdering =
(ct1, ct2) -> {
// Order graph output first by target label, then by configuration hash.
Label label1 = ct1.getOriginalLabel();
@@ -66,18 +66,18 @@
};
@Override
- public String getLabel(Node<CqueryNode> node, LabelPrinter labelPrinter) {
+ public String getLabel(Node<ConfiguredTarget> node, LabelPrinter labelPrinter) {
// Node payloads are ConfiguredTargets. Output node labels are target labels + config
// hashes.
- CqueryNode kct = node.getLabel();
+ ConfiguredTarget kct = node.getLabel();
return String.format(
"%s (%s)",
- kct.getDescription(labelPrinter),
+ labelPrinter.toString(kct.getOriginalLabel()),
shortId(getConfiguration(kct.getConfigurationKey())));
}
@Override
- public Comparator<CqueryNode> comparator() {
+ public Comparator<ConfiguredTarget> comparator() {
return configuredTargetOrdering;
}
};
@@ -89,7 +89,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
DepsRetriever depsRetriever,
LabelPrinter labelPrinter) {
super(eventHandler, options, out, skyframeExecutor, accessor, /* uniquifyResults= */ false);
@@ -98,23 +98,23 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult) throws InterruptedException {
+ public void processOutput(Iterable<ConfiguredTarget> partialResult) throws InterruptedException {
// Transform the cquery-backed graph into a Digraph to make it suitable for GraphOutputWriter.
// Note that this involves an extra iteration over the entire query result subgraph. We could
// conceptually merge transformation and output writing into the same iteration if needed.
- Digraph<CqueryNode> graph = new Digraph<>();
- ImmutableSet<CqueryNode> allNodes = ImmutableSet.copyOf(partialResult);
- for (CqueryNode configuredTarget : partialResult) {
- Node<CqueryNode> node = graph.createNode(configuredTarget);
- for (CqueryNode dep : depsRetriever.getDirectDeps(configuredTarget)) {
+ Digraph<ConfiguredTarget> graph = new Digraph<>();
+ ImmutableSet<ConfiguredTarget> allNodes = ImmutableSet.copyOf(partialResult);
+ for (ConfiguredTarget configuredTarget : partialResult) {
+ Node<ConfiguredTarget> node = graph.createNode(configuredTarget);
+ for (ConfiguredTarget dep : depsRetriever.getDirectDeps(configuredTarget)) {
if (allNodes.contains(dep)) {
- Node<CqueryNode> depNode = graph.createNode(dep);
+ Node<ConfiguredTarget> depNode = graph.createNode(dep);
graph.addEdge(node, depNode);
}
}
}
- GraphOutputWriter<CqueryNode> graphWriter =
+ GraphOutputWriter<ConfiguredTarget> graphWriter =
new GraphOutputWriter<>(
nodeReader,
options.getLineTerminator(),
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/LabelAndConfigurationOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/LabelAndConfigurationOutputFormatterCallback.java
index b9a411e..3aa922b 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/LabelAndConfigurationOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/LabelAndConfigurationOutputFormatterCallback.java
@@ -22,7 +22,6 @@
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.util.ClassName;
@@ -38,7 +37,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
boolean showKind,
LabelPrinter labelPrinter) {
super(eventHandler, options, out, skyframeExecutor, accessor, /* uniquifyResults= */ false);
@@ -52,8 +51,8 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult) {
- for (CqueryNode keyedConfiguredTarget : partialResult) {
+ public void processOutput(Iterable<ConfiguredTarget> partialResult) {
+ for (ConfiguredTarget keyedConfiguredTarget : partialResult) {
StringBuilder output = new StringBuilder();
if (showKind) {
Target actualTarget = accessor.getTarget(keyedConfiguredTarget);
@@ -61,7 +60,7 @@
}
output =
output
- .append(keyedConfiguredTarget.getDescription(labelPrinter))
+ .append(labelPrinter.toString(keyedConfiguredTarget.getOriginalLabel()))
.append(" (")
.append(shortId(getConfiguration(keyedConfiguredTarget.getConfigurationKey())))
.append(")");
@@ -75,13 +74,9 @@
}
private static ImmutableSortedSet<String> requiredFragmentStrings(
- CqueryNode keyedConfiguredTarget) {
- if (!(keyedConfiguredTarget instanceof ConfiguredTarget)) {
- return ImmutableSortedSet.of();
- }
-
+ ConfiguredTarget keyedConfiguredTarget) {
RequiredConfigFragmentsProvider requiredFragments =
- ((ConfiguredTarget) keyedConfiguredTarget)
+ keyedConfiguredTarget
.getProvider(RequiredConfigFragmentsProvider.class);
if (requiredFragments == null) {
return ImmutableSortedSet.of();
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallback.java
index df4b277..c9b63cd 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallback.java
@@ -24,7 +24,7 @@
import com.google.devtools.build.lib.analysis.AnalysisProtosV2.Configuration;
import com.google.devtools.build.lib.analysis.AnalysisProtosV2.CqueryResult;
import com.google.devtools.build.lib.analysis.AnalysisProtosV2.CqueryResultOrBuilder;
-import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
@@ -37,7 +37,6 @@
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.cquery.CqueryOptions.Transitions;
import com.google.devtools.build.lib.query2.cquery.CqueryTransitionResolver.EvaluateException;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
@@ -57,7 +56,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.function.Function;
/** Proto output formatter for cquery results. */
class ProtoOutputFormatterCallback extends CqueryThreadsafeCallback {
@@ -82,24 +80,11 @@
private static class ConfigurationCache {
private final Map<BuildConfigurationEvent, Integer> cache = new HashMap<>();
- private final Function<BuildConfigurationKey, BuildConfigurationValue> configurationGetter;
-
- private ConfigurationCache(
- Function<BuildConfigurationKey, BuildConfigurationValue> configurationGetter) {
- this.configurationGetter = configurationGetter;
- }
public int getId(BuildConfigurationEvent buildConfigurationEvent) {
return cache.computeIfAbsent(buildConfigurationEvent, event -> cache.size() + 1);
}
- public int getId(BuildOptions options) {
- BuildConfigurationValue configurationValue =
- configurationGetter.apply(BuildConfigurationKey.create(options));
- BuildConfigurationEvent buildConfigurationEvent = configurationValue.toBuildEvent();
- return getId(buildConfigurationEvent);
- }
-
public ImmutableList<Configuration> getConfigurations() {
return cache.entrySet().stream()
.map(
@@ -125,21 +110,20 @@
private final OutputType outputType;
private final AspectResolver resolver;
private final SkyframeExecutor skyframeExecutor;
- private final ConfigurationCache configurationCache =
- new ConfigurationCache(this::getConfiguration);
+ private final ConfigurationCache configurationCache = new ConfigurationCache();
private final JsonFormat.Printer jsonPrinter = JsonFormat.printer();
private final RuleClassProvider ruleClassProvider;
private final Map<Label, Target> partialResultMap;
private final LabelPrinter labelPrinter;
- private CqueryNode currentTarget;
+ private ConfiguredTarget currentTarget;
ProtoOutputFormatterCallback(
ExtendedEventHandler eventHandler,
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
AspectResolver resolver,
OutputType outputType,
RuleClassProvider ruleClassProvider,
@@ -238,7 +222,7 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult)
+ public void processOutput(Iterable<ConfiguredTarget> partialResult)
throws InterruptedException, IOException {
partialResult.forEach(
kct -> partialResultMap.put(kct.getOriginalLabel(), accessor.getTarget(kct)));
@@ -253,7 +237,7 @@
ConfiguredProtoOutputFormatter formatter = new ConfiguredProtoOutputFormatter();
formatter.setOptions(options, resolver, skyframeExecutor.getDigestFunction().getHashFunction());
- for (CqueryNode keyedConfiguredTarget : partialResult) {
+ for (ConfiguredTarget keyedConfiguredTarget : partialResult) {
AnalysisProtosV2.ConfiguredTarget.Builder builder =
AnalysisProtosV2.ConfiguredTarget.newBuilder();
@@ -277,7 +261,9 @@
.setLabel(labelPrinter.toString(resolvedTransition.label())));
} else {
for (BuildOptions options : resolvedTransition.options()) {
- int configurationId = configurationCache.getId(options);
+ BuildConfigurationEvent buildConfigurationEvent =
+ getConfiguration(BuildConfigurationKey.create(options)).toBuildEvent();
+ int configurationId = configurationCache.getId(buildConfigurationEvent);
targetBuilder
.getRuleBuilder()
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/StarlarkOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/StarlarkOutputFormatterCallback.java
index e744685..a4ecf87 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/StarlarkOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/StarlarkOutputFormatterCallback.java
@@ -17,6 +17,7 @@
import static com.google.devtools.build.lib.analysis.config.StarlarkDefinedConfigTransition.COMMAND_LINE_OPTION_PREFIX;
import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -24,7 +25,6 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
import com.google.devtools.build.lib.query2.engine.QueryException;
import com.google.devtools.build.lib.server.FailureDetails.ConfigurableQuery;
@@ -64,7 +64,7 @@
parameters = {
@Param(name = "target"),
})
- public Object buildOptions(CqueryNode target) {
+ public Object buildOptions(ConfiguredTarget target) {
BuildConfigurationValue config = getConfiguration(target.getConfigurationKey());
if (config == null) {
@@ -118,7 +118,7 @@
parameters = {
@Param(name = "target"),
})
- public Object providers(CqueryNode target) {
+ public Object providers(ConfiguredTarget target) {
Dict<String, Object> ret = target.getProvidersDictForQuery();
if (ret == null) {
return Starlark.NONE;
@@ -129,7 +129,7 @@
private static final Object[] NO_ARGS = new Object[0];
- // Starlark function with single required parameter "target", a CqueryNode query result.
+ // Starlark function with single required parameter "target", a ConfiguredTarget query result.
private final StarlarkFunction formatFn;
private final StarlarkSemantics starlarkSemantics;
@@ -138,7 +138,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
StarlarkSemantics starlarkSemantics)
throws QueryException, InterruptedException {
super(eventHandler, options, out, skyframeExecutor, accessor, /* uniquifyResults= */ false);
@@ -227,8 +227,8 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult) throws InterruptedException {
- for (CqueryNode target : partialResult) {
+ public void processOutput(Iterable<ConfiguredTarget> partialResult) throws InterruptedException {
+ for (ConfiguredTarget target : partialResult) {
try {
StarlarkThread thread =
new StarlarkThread(Mutability.create("cquery evaluation"), starlarkSemantics);
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterCallback.java
index cd0393c..b1d5992 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterCallback.java
@@ -17,6 +17,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptions.OptionsDiff;
@@ -31,7 +32,6 @@
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.packages.RuleTransitionData;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.cquery.CqueryTransitionResolver.EvaluateException;
import com.google.devtools.build.lib.query2.cquery.CqueryTransitionResolver.ResolvedTransition;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
@@ -63,7 +63,7 @@
CqueryOptions options,
OutputStream out,
SkyframeExecutor skyframeExecutor,
- TargetAccessor<CqueryNode> accessor,
+ TargetAccessor<ConfiguredTarget> accessor,
RuleClassProvider ruleClassProvider,
LabelPrinter labelPrinter) {
super(eventHandler, options, out, skyframeExecutor, accessor, /* uniquifyResults= */ false);
@@ -74,7 +74,7 @@
}
@Override
- public void processOutput(Iterable<CqueryNode> partialResult) throws InterruptedException {
+ public void processOutput(Iterable<ConfiguredTarget> partialResult) throws InterruptedException {
CqueryOptions.Transitions verbosity = options.transitions;
if (verbosity.equals(CqueryOptions.Transitions.NONE)) {
eventHandler.handle(
@@ -85,7 +85,7 @@
}
partialResult.forEach(
kct -> partialResultMap.put(kct.getOriginalLabel(), accessor.getTarget(kct)));
- for (CqueryNode keyedConfiguredTarget : partialResult) {
+ for (ConfiguredTarget keyedConfiguredTarget : partialResult) {
Target target = partialResultMap.get(keyedConfiguredTarget.getOriginalLabel());
BuildConfigurationValue config =
getConfiguration(keyedConfiguredTarget.getConfigurationKey());
@@ -130,7 +130,7 @@
}
}
- private static String getRuleClassTransition(CqueryNode ct, Target target) {
+ private static String getRuleClassTransition(ConfiguredTarget ct, Target target) {
String output = "";
if (ct instanceof RuleConfiguredTarget) {
TransitionFactory<RuleTransitionData> factory =
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java
index 6ae3a13..87b6e1e 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryEnvironment.java
@@ -647,10 +647,7 @@
NO_NODEP_DEPS,
/** Include aspect-generated output. No-op for query, which always follows aspects. */
- INCLUDE_ASPECTS,
-
- /** Include configured aspect targets in cquery output. */
- EXPLICIT_ASPECTS;
+ INCLUDE_ASPECTS;
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/BUILD b/src/main/java/com/google/devtools/build/lib/rules/BUILD
index 9ffaae3..96acbd1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/BUILD
@@ -255,7 +255,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:rule_definition_environment",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/net/starlark/java/eval",
"//third_party:guava",
@@ -393,13 +393,12 @@
srcs = ["repository/RepositoryDirectoryValue.java"],
deps = [
"//src/main/java/com/google/devtools/build/lib/cmdline",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe:directory_listing_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
- "//third_party:error_prone_annotations",
"//third_party:guava",
"//third_party:jsr305",
],
@@ -464,7 +463,6 @@
deps = [
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java b/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
index f86b8ee..35634ce 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
@@ -28,7 +28,7 @@
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.ToolchainResolutionMode;
import com.google.devtools.build.lib.rules.LateBoundAlias.AbstractAliasRule;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import net.starlark.java.eval.Starlark;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
index 5bee3a2..f23d9f9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
@@ -18,7 +18,7 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.rules.android.AndroidDataConverter.JoinerType;
import com.google.devtools.build.lib.rules.android.databinding.DataBindingContext;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Collections;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/BUILD b/src/main/java/com/google/devtools/build/lib/rules/android/BUILD
index b3162f6..f37c4d7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/BUILD
@@ -69,6 +69,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:platform_configuration",
"//src/main/java/com/google/devtools/build/lib/analysis:platform_options",
"//src/main/java/com/google/devtools/build/lib/analysis:required_config_fragments_provider",
+ "//src/main/java/com/google/devtools/build/lib/analysis:resolved_toolchain_context",
"//src/main/java/com/google/devtools/build/lib/analysis:rule_definition_environment",
"//src/main/java/com/google/devtools/build/lib/analysis:rule_error_consumer",
"//src/main/java/com/google/devtools/build/lib/analysis:starlark/function_transition_util",
@@ -92,7 +93,6 @@
"//src/main/java/com/google/devtools/build/lib/rules/java:java-rules",
"//src/main/java/com/google/devtools/build/lib/rules/proto",
"//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_and_data",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/android",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
index 598b167..b4a2ff6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
@@ -15,7 +15,7 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.rules.android.AndroidDataConverter.JoinerType;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/BUILD b/src/main/java/com/google/devtools/build/lib/rules/config/BUILD
index 9fd5171..12717d0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/BUILD
@@ -26,6 +26,7 @@
":config_feature_flag_options",
":feature_flag_value",
"//src/main/java/com/google/devtools/build/lib/actions",
+ "//src/main/java/com/google/devtools/build/lib/actions:artifact_owner",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:build_setting_provider",
@@ -37,6 +38,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/invalid_configuration_exception",
"//src/main/java/com/google/devtools/build/lib/analysis:config/starlark_defined_config_transition",
"//src/main/java/com/google/devtools/build/lib/analysis:config/toolchain_type_requirement",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/no_transition",
@@ -61,7 +63,6 @@
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/rules/core",
"//src/main/java/com/google/devtools/build/lib/rules/platform",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/config",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
index f7767d2..2597279 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRuleClasses.java
@@ -32,7 +32,7 @@
import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.Type;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD b/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD
index 8ec70b0..0da6a4f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/BUILD
@@ -111,7 +111,6 @@
"//src/main/java/com/google/devtools/build/lib/shell",
"//src/main/java/com/google/devtools/build/lib/skyframe:action_execution_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:tree_artifact_value",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
index f61334a..70b2471 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
@@ -36,8 +36,8 @@
import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.SingleVariables;
import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.StringChunk;
import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.StringValueParser;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD b/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
index a08c5d6..6df1f3f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/BUILD
@@ -91,7 +91,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:target_loading_util",
"//src/main/java/com/google/devtools/build/lib/skyframe:transitive_target_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:transitive_target_value",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryDirectPackageProviderFactory.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryDirectPackageProviderFactory.java
index 0594d42..e6c6ab7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryDirectPackageProviderFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryDirectPackageProviderFactory.java
@@ -36,7 +36,6 @@
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.skyframe.TargetLoadingUtil;
import com.google.devtools.build.lib.skyframe.TargetLoadingUtil.TargetAndErrorIfAny;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.PartialReevaluationMailbox;
@@ -80,7 +79,7 @@
super(ImmutableList.sortedCopyOf(arg));
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(ImmutableList<Label> arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
index 6ad4258..3a42d65 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
@@ -154,7 +154,6 @@
"//src/main/java/com/google/devtools/build/lib/packages/semantics",
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
"//src/main/java/com/google/devtools/build/lib/shell",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
index 54b3125..a13a862 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
@@ -30,7 +30,7 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import javax.annotation.Nullable;
@@ -119,7 +119,7 @@
return VectorArg.of(jarsToCheck).mapped(EXPAND_TO_JAR_AND_TARGET);
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final CommandLineItem.MapFn<Artifact> EXPAND_TO_JAR_AND_TARGET =
(jar, args) ->
args.accept(jar.getExecPathString() + "," + getArtifactOwnerGeneralizedLabel(jar));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/BUILD b/src/main/java/com/google/devtools/build/lib/rules/python/BUILD
index efd6e5a..6b8e4b1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/BUILD
@@ -26,21 +26,27 @@
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/build_options_cache",
"//src/main/java/com/google/devtools/build/lib/analysis:config/core_option_converters",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/configuration_transition",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/no_transition",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/patch_transition",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/transition_factory",
"//src/main/java/com/google/devtools/build/lib/analysis:file_provider",
"//src/main/java/com/google/devtools/build/lib/analysis:repo_mapping_manifest_action",
"//src/main/java/com/google/devtools/build/lib/analysis:rule_definition_environment",
"//src/main/java/com/google/devtools/build/lib/analysis:transitive_info_collection",
+ "//src/main/java/com/google/devtools/build/lib/analysis:transitive_info_provider",
"//src/main/java/com/google/devtools/build/lib/analysis/starlark/annotations",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
+ "//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/packages/semantics",
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/python",
@@ -54,6 +60,7 @@
"//src/main/java/net/starlark/java/eval",
"//src/main/java/net/starlark/java/syntax",
"//src/main/protobuf:extra_actions_base_java_proto",
+ "//third_party:error_prone_annotations",
"//third_party:guava",
"//third_party:jsr305",
"//third_party/protobuf:protobuf_java",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
index 91a8651..7d8663a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -27,7 +27,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.Type;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.protobuf.GeneratedMessage.GeneratedExtension;
import java.util.Collection;
@@ -104,7 +104,7 @@
info);
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final GeneratedExtension<ExtraActionInfo, PythonInfo> PYTHON_INFO = PythonInfo.pythonInfo;
// Used purely to set the legacy ActionType of the ExtraActionInfo.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java
index e646faf..82be0a6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java
@@ -22,7 +22,6 @@
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.skyframe.DirectoryListingValue;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -181,7 +180,7 @@
}
/** The SkyKey for retrieving the local directory of an external repository. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
public static class Key extends AbstractSkyKey<RepositoryName> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -190,7 +189,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RepositoryName arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileValue.java b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileValue.java
index 3099ed6..ddbfc6c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileValue.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/ResolvedFileValue.java
@@ -16,7 +16,6 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -50,7 +49,7 @@
this.path = path;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static ResolvedFileKey create(RootedPath path) {
return interner.intern(new ResolvedFileKey(path));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java
index 6e0f758..dc4246e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionEnvironmentFunction.java
@@ -18,7 +18,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.bugreport.BugReport;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -52,7 +51,7 @@
return Key.create(variable);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<String> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -61,7 +60,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(String arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionLookupConflictFindingValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionLookupConflictFindingValue.java
index 35dd401..fe5ee5d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionLookupConflictFindingValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionLookupConflictFindingValue.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.actions.ActionLookupValue;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -46,7 +45,7 @@
((Artifact.DerivedArtifact) artifact).getGeneratingActionKey().getActionLookupKey());
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<ActionLookupKey> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -55,7 +54,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(ActionLookupKey arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java
index cbdd287..a80ba14 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionValue.java
@@ -16,14 +16,15 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Interner;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.actions.BasicActionLookupValue;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
-import com.google.devtools.build.skyframe.SkyKey;
/** Value that stores expanded actions from ActionTemplate. */
public final class ActionTemplateExpansionValue extends BasicActionLookupValue {
@@ -39,7 +40,8 @@
/** Key for {@link ActionTemplateExpansionValue} nodes. */
@AutoCodec
public static final class ActionTemplateExpansionKey implements ActionLookupKey {
- private static final SkyKeyInterner<ActionTemplateExpansionKey> interner = SkyKey.newInterner();
+ private static final Interner<ActionTemplateExpansionKey> interner =
+ BlazeInterners.newWeakInterner();
private final ActionLookupKey actionLookupKey;
private final int actionIndex;
@@ -83,11 +85,6 @@
}
@Override
- public SkyKeyInterner<ActionTemplateExpansionKey> getSkyKeyInterner() {
- return interner;
- }
-
- @Override
public int hashCode() {
return 37 * actionLookupKey.hashCode() + actionIndex;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
index 8f5947e..8c2a068 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
@@ -18,6 +18,7 @@
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Interner;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.ActionExecutionException;
@@ -35,6 +36,7 @@
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
import com.google.devtools.build.lib.bugreport.BugReport;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.server.FailureDetails.Execution;
import com.google.devtools.build.lib.server.FailureDetails.Execution.Code;
@@ -584,8 +586,8 @@
private static final class DirectoryArtifactTraversalRequest extends TraversalRequest {
- private static final SkyKeyInterner<DirectoryArtifactTraversalRequest> interner =
- SkyKey.newInterner();
+ private static final Interner<DirectoryArtifactTraversalRequest> interner =
+ BlazeInterners.newWeakInterner();
static DirectoryArtifactTraversalRequest create(
DirectTraversalRoot root, boolean skipTestingForSubpackage, Artifact artifact) {
@@ -646,11 +648,6 @@
}
@Override
- public SkyKeyInterner<DirectoryArtifactTraversalRequest> getSkyKeyInterner() {
- return interner;
- }
-
- @Override
public int hashCode() {
// Artifact is only for error info and not considered in hash code or equality.
return root.hashCode() * 31 + Boolean.hashCode(skipTestingForSubpackage);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectKeyCreator.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectKeyCreator.java
index 3f4d7fb..72473ac 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectKeyCreator.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectKeyCreator.java
@@ -24,10 +24,7 @@
import com.google.devtools.build.lib.packages.AspectClass;
import com.google.devtools.build.lib.packages.AspectDescriptor;
import com.google.devtools.build.lib.packages.AspectParameters;
-import com.google.devtools.build.lib.packages.LabelPrinter;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.HashCodes;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -97,7 +94,7 @@
* aspects and its {@code baseKeys} list will be empty.
*/
@AutoCodec
- public abstract static class AspectKey extends AspectBaseKey implements CqueryNode {
+ public abstract static class AspectKey extends AspectBaseKey {
private static final SkyKeyInterner<AspectKey> interner = SkyKey.newInterner();
private final AspectDescriptor aspectDescriptor;
@@ -110,7 +107,7 @@
this.aspectDescriptor = aspectDescriptor;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static AspectKey createAspectKey(
ConfiguredTargetKey baseConfiguredTargetKey,
@@ -148,11 +145,6 @@
public abstract String getDescription();
@Override
- public String getDescription(LabelPrinter labelPrinter) {
- return getDescription();
- }
-
- @Override
public SkyFunctionName functionName() {
return SkyFunctions.ASPECT;
}
@@ -172,16 +164,6 @@
return getBaseConfiguredTargetKey().getLabel();
}
- @Override
- public SkyKeyInterner<AspectKey> getSkyKeyInterner() {
- return interner;
- }
-
- @Override
- public ActionLookupKey getLookupKey() {
- return this;
- }
-
public AspectClass getAspectClass() {
return aspectDescriptor.getAspectClass();
}
@@ -232,15 +214,11 @@
getLabel(), aspectDescriptor.getAspectClass().getName(), baseKeysString);
}
- public String getAspectLabel() {
- return (getBaseKeys().isEmpty() ? getLabel() : getBaseKeys().toString())
- + "#"
- + aspectDescriptor;
- }
-
@Override
public String toString() {
- return getAspectLabel()
+ return (getBaseKeys().isEmpty() ? getLabel() : getBaseKeys().toString())
+ + "#"
+ + aspectDescriptor
+ " "
+ getBaseConfiguredTargetKey()
+ " "
@@ -260,6 +238,11 @@
aspectDescriptor);
}
+ @Override
+ public SkyKeyInterner<AspectKey> getSkyKeyInterner() {
+ return interner;
+ }
+
static class SimpleAspectKey extends AspectKey {
SimpleAspectKey(
ConfiguredTargetKey baseConfiguredTargetKey,
@@ -298,10 +281,7 @@
@Override
public String getDescription() {
- return String.format(
- "%s on top of %s",
- getAspectClass().getName(),
- baseKeys.stream().map(AspectKey::getDescription).collect(toImmutableList()));
+ return String.format("%s on top of %s", getAspectClass().getName(), baseKeys);
}
}
}
@@ -319,7 +299,7 @@
private final ImmutableMap<String, String> topLevelAspectsParameters;
@AutoCodec.Instantiator
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static TopLevelAspectsKey createInternal(
ImmutableList<AspectClass> topLevelAspectsClasses,
Label targetLabel,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
index 8a9d613..ecd48b6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -321,7 +321,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe/rewinding",
"//src/main/java/com/google/devtools/build/lib/skyframe/rewinding:action_rewound_event",
"//src/main/java/com/google/devtools/build/lib/skyframe/rewinding:rewindable_graph_inconsistency_receiver",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/skyframe/toolchains:registered_execution_platforms_function",
@@ -412,7 +411,7 @@
":precomputed_value",
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/bugreport",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -498,7 +497,6 @@
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key",
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -747,10 +745,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/packages:label_printer",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/util:hash_codes",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -771,9 +766,9 @@
":starlark_builtins_value",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/cmdline",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -813,7 +808,7 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
@@ -973,10 +968,11 @@
deps = [
":client_environment_value",
":sky_functions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:guava",
"//third_party:jsr305",
],
)
@@ -1017,7 +1013,6 @@
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -1052,8 +1047,8 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/pkgcache",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -1098,8 +1093,8 @@
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/util:hash_codes",
@@ -1151,7 +1146,7 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -1241,7 +1236,6 @@
":dirents",
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -1259,10 +1253,10 @@
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:guava",
],
)
@@ -1584,11 +1578,12 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:guava",
],
)
@@ -1629,8 +1624,8 @@
":package_value",
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -1659,10 +1654,11 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:guava",
],
)
@@ -1718,9 +1714,9 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/rules:repository/repository_directory_value",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -1806,9 +1802,9 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/pkgcache",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -1827,7 +1823,6 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/pkgcache",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -1865,7 +1860,6 @@
":target_pattern_value",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/query2/common:UniverseSkyKey",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -2039,16 +2033,15 @@
"//src/main/java/com/google/devtools/build/lib/io:file_symlink_infinite_expansion_uniqueness_function",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/profiler",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/build/skyframe",
+ "//src/main/java/com/google/devtools/build/skyframe:execution_phase_skykey",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//src/main/protobuf:failure_details_java_proto",
- "//third_party:error_prone_annotations",
"//third_party:guava",
"//third_party:jsr305",
],
@@ -2129,7 +2122,6 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -2426,7 +2418,7 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//src/main/java/net/starlark/java/eval",
@@ -2464,11 +2456,12 @@
deps = [
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/cmdline",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:guava",
"//third_party:jsr305",
],
)
@@ -2540,7 +2533,7 @@
":sky_functions",
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/analysis:top_level_artifact_context",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:auto_value",
@@ -2833,7 +2826,6 @@
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/actions:has_digest",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util",
@@ -2883,7 +2875,6 @@
srcs = ["WorkspaceNameValue.java"],
deps = [
":sky_functions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -2945,7 +2936,6 @@
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//third_party:guava",
"//third_party:jsr305",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileValue.java
index 181cd8f..b6a1393 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileValue.java
@@ -16,7 +16,6 @@
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.Root;
@@ -57,7 +56,7 @@
public abstract String getError(); // on failure
/** If the file is compiled successfully, this class encapsulates the compiled program. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
public static class Success extends BzlCompileValue {
private final Program prog;
private final byte[] digest;
@@ -90,7 +89,7 @@
}
/** If the file isn't found or has errors, this class encapsulates a message with the reason. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
public static class Failure extends BzlCompileValue {
private final String errorMsg;
@@ -176,7 +175,7 @@
}
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(Root root, Label label, Kind kind) {
return interner.intern(new Key(root, label, kind));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadValue.java
index bd87eac..e92d018 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadValue.java
@@ -23,7 +23,7 @@
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.BzlVisibility;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.Root;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -202,7 +202,7 @@
/** A key for loading a .bzl during package loading (BUILD evaluation). */
@Immutable
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static final class KeyForBuild extends Key {
private final Label label;
@@ -260,7 +260,7 @@
// are we reevaluating whether its loads are still valid? AI: fix if broken, improve this comment
// if not broken.
@Immutable
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static final class KeyForWorkspace extends Key {
private final Label label;
private final int workspaceChunk;
@@ -322,7 +322,7 @@
*/
// TODO(#11437): Prevent users from trying to declare a repo named "@_builtins".
@Immutable
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static final class KeyForBuiltins extends Key {
private final Label label;
@@ -356,7 +356,7 @@
/** A key for loading a .bzl to get the repo rule required by Bzlmod generated repositories. */
@Immutable
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static class KeyForBzlmod extends Key {
private final Label label;
@@ -381,7 +381,7 @@
}
@Immutable
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static class KeyForBzlmodBootstrap extends KeyForBzlmod {
private KeyForBzlmodBootstrap(Label label) {
super(label);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ClientEnvironmentFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ClientEnvironmentFunction.java
index b996d82..01adbd4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ClientEnvironmentFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ClientEnvironmentFunction.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skyframe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -32,7 +31,7 @@
}
/** The Skyframe key for the client environment function. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
public static class Key extends AbstractSkyKey<String> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -41,7 +40,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(String arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
index f0ebeed..403009f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectPackagesUnderDirectoryValue.java
@@ -17,9 +17,10 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Interner;
import com.google.devtools.build.lib.cmdline.RepositoryName;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -53,7 +54,7 @@
* directories above that one, but they don't need to be re-run.
*/
public abstract class CollectPackagesUnderDirectoryValue implements SkyValue {
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
protected final ImmutableMap<RootedPath, Boolean>
subdirectoryTransitivelyContainsPackagesOrErrors;
@@ -235,10 +236,10 @@
return Key.create(repository, rootedPath, excludedPaths);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends RecursivePkgSkyKey {
- private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
+ private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
private Key(
RepositoryName repositoryName,
@@ -247,7 +248,7 @@
super(repositoryName, rootedPath, excludedPaths);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(
RepositoryName repositoryName,
@@ -260,10 +261,5 @@
public SkyFunctionName functionName() {
return SkyFunctions.COLLECT_PACKAGES_UNDER_DIRECTORY;
}
-
- @Override
- public SkyKeyInterner<Key> getSkyKeyInterner() {
- return interner;
- }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java
index 52e1afd..dcf5763 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java
@@ -16,7 +16,6 @@
import com.google.auto.value.AutoValue;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.pkgcache.FilteringPolicy;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -45,7 +44,7 @@
public abstract static class CollectTargetsInPackageKey implements SkyKey {
private static final SkyKeyInterner<CollectTargetsInPackageKey> interner = SkyKey.newInterner();
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
public static CollectTargetsInPackageKey create(
PackageIdentifier packageId, FilteringPolicy filteringPolicy) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
index 0b9c344..335d652 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
@@ -19,9 +19,9 @@
import com.google.common.base.MoreObjects;
import com.google.devtools.build.lib.actions.ActionLookupKey;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
@@ -234,7 +234,7 @@
}
/** Returns the {@link ConfiguredTargetKey} that owns {@code configuredTarget}. */
- public static ConfiguredTargetKey fromConfiguredTarget(CqueryNode configuredTarget) {
+ public static ConfiguredTargetKey fromConfiguredTarget(ConfiguredTarget configuredTarget) {
// If configuredTarget is a MergedConfiguredTarget unwraps it first. MergedConfiguredTarget is
// ephemeral and does not have a directly corresponding entry in Skyframe.
//
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java
index a2595a0..444c15b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java
@@ -18,7 +18,6 @@
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -114,7 +113,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(PackageIdentifier arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java
index ddb1294..14975e3 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateValue.java
@@ -17,7 +17,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.Dirent;
import com.google.devtools.build.lib.vfs.RootedPath;
@@ -38,7 +37,7 @@
*
* <p>This class is an implementation detail of {@link DirectoryListingValue}.
*/
-@VisibleForSerialization
+@AutoCodec.VisibleForSerialization
public final class DirectoryListingStateValue implements SkyValue {
private final CompactSortedDirents compactSortedDirents;
@@ -58,7 +57,7 @@
}
/** Key type for DirectoryListingStateValue. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
public static class Key extends AbstractSkyKey<RootedPath> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -67,7 +66,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RootedPath arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java
index e131030..8ec47233 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java
@@ -16,7 +16,6 @@
import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -63,7 +62,7 @@
}
/** Key type for DirectoryListingValue. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
public static class Key extends AbstractSkyKey<RootedPath> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -72,7 +71,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RootedPath arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java
index d6bfbd4..a593b51 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalPackageFunction.java
@@ -16,7 +16,7 @@
import com.google.devtools.build.lib.packages.WorkspaceFileValue;
import com.google.devtools.build.lib.repository.ExternalPackageHelper;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -31,7 +31,7 @@
* that will contain all the bind statements from the WORKSPACE file.
*/
public class ExternalPackageFunction implements SkyFunction {
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final SkyKey KEY = () -> SkyFunctions.EXTERNAL_PACKAGE;
private final ExternalPackageHelper externalPackageHelper;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/IgnoredPackagePrefixesValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/IgnoredPackagePrefixesValue.java
index 89b58b0..71c5716 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/IgnoredPackagePrefixesValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/IgnoredPackagePrefixesValue.java
@@ -16,7 +16,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.cmdline.RepositoryName;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -29,7 +28,7 @@
public class IgnoredPackagePrefixesValue implements SkyValue {
private final ImmutableSet<PathFragment> patterns;
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
public static final IgnoredPackagePrefixesValue EMPTY_LIST =
new IgnoredPackagePrefixesValue(ImmutableSet.of());
@@ -69,7 +68,7 @@
return false;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<RepositoryName> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -78,7 +77,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RepositoryName arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java
index 2137731..7f597c6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupValue.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skyframe;
import com.google.devtools.build.lib.cmdline.RepositoryName;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
@@ -35,7 +34,7 @@
return Key.create(directory);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<RootedPath> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -44,7 +43,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(RootedPath arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/NonRuleConfiguredTargetValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/NonRuleConfiguredTargetValue.java
index 446ca39..f71c2d7 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/NonRuleConfiguredTargetValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/NonRuleConfiguredTargetValue.java
@@ -22,8 +22,8 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.packages.Package;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import javax.annotation.Nullable;
/** A non-rule configured target in the context of a Skyframe graph. */
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java
index 9c9ee45..b2cfb77 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorFunction.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.Package;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -45,7 +44,7 @@
return Key.create(packageIdentifier);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<PackageIdentifier> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -54,7 +53,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(PackageIdentifier arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageValue.java
index 400c65e..54c68a6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageValue.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skyframe;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -75,7 +74,7 @@
return Key.create(pkgId);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<PackageIdentifier> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -84,7 +83,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(PackageIdentifier arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java
index a773362..170bd16 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java
@@ -20,7 +20,6 @@
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.packages.BuildFileName;
import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryValue;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -136,7 +135,7 @@
}
/** {@link SkyKey} for {@link PackageLookupValue} computation. */
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<PackageIdentifier> {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -145,7 +144,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(PackageIdentifier arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java
index 9ebeaa3..5ef5c37 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrecomputedValue.java
@@ -22,8 +22,8 @@
import com.google.devtools.build.lib.packages.Package.ConfigSettingVisibilityPolicy;
import com.google.devtools.build.lib.packages.RuleVisibility;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.skyframe.AbstractSkyKey;
import com.google.devtools.build.skyframe.Differencer.DiffWithDelta.Delta;
import com.google.devtools.build.skyframe.Injectable;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java
index a310d0e..c691a3e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java
@@ -22,7 +22,6 @@
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.server.FailureDetails.TargetPatterns;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.skyframe.AbstractSkyKey;
@@ -198,7 +197,7 @@
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(TargetPatternKey arg) {
return interner.intern(new Key(arg));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java
index 3324eaa..cd0492d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsValue.java
@@ -16,11 +16,12 @@
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Interner;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.query2.common.UniverseSkyKey;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -61,10 +62,11 @@
/** The argument value for {@link SkyKey}s of {@link PrepareDepsOfPatternsFunction}. */
@ThreadSafe
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class TargetPatternSequence implements UniverseSkyKey {
- private static final SkyKeyInterner<TargetPatternSequence> interner = SkyKey.newInterner();
+ private static final Interner<TargetPatternSequence> interner =
+ BlazeInterners.newWeakInterner();
private final ImmutableList<String> patterns;
private final PathFragment offset;
@@ -74,7 +76,7 @@
this.offset = Preconditions.checkNotNull(offset);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static TargetPatternSequence create(ImmutableList<String> patterns, PathFragment offset) {
return interner.intern(new TargetPatternSequence(patterns, offset));
@@ -90,11 +92,6 @@
}
@Override
- public SkyKeyInterner<TargetPatternSequence> getSkyKeyInterner() {
- return interner;
- }
-
- @Override
public boolean equals(Object o) {
if (this == o) {
return true;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java
index 86b253c..70fa69d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java
@@ -44,7 +44,7 @@
import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalValue.FileType;
import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalValue.ResolvedFile;
import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalValue.ResolvedFileFactory;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.Dirent;
@@ -75,7 +75,7 @@
private static final byte[] MISSING_FINGERPRINT =
new BigInteger(1, "NonexistentFileStateValue".getBytes(UTF_8)).toByteArray();
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final HasDigest NON_EXISTENT_HAS_DIGEST = () -> MISSING_FINGERPRINT;
private static final FileInfo NON_EXISTENT_FILE_INFO =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
index f0539bf..7e190be 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValue.java
@@ -14,19 +14,19 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Interner;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunctionName;
-import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
/**
@@ -72,10 +72,10 @@
return hasErrors;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends RecursivePkgSkyKey {
- private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
+ private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
private Key(
RepositoryName repositoryName,
@@ -84,7 +84,7 @@
super(repositoryName, rootedPath, excludedPaths);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(
RepositoryName repositoryName,
@@ -97,10 +97,5 @@
public SkyFunctionName functionName() {
return SkyFunctions.RECURSIVE_PKG;
}
-
- @Override
- public SkyKeyInterner<Key> getSkyKeyInterner() {
- return interner;
- }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternErrorFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternErrorFunction.java
index 07b0361..8b77993 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternErrorFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternErrorFunction.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.skyframe;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.DetailedExitCode;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -38,7 +37,7 @@
return Key.create(e.getMessage(), e.getDetailedExitCode());
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key implements SkyKey {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -50,7 +49,7 @@
this.detailedExitCode = detailedExitCode;
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(String message, DetailedExitCode detailedExitCode) {
return interner.intern(new Key(message, detailedExitCode));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
index a809433..8ad9fba 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
@@ -14,10 +14,11 @@
package com.google.devtools.build.lib.skyframe;
import com.google.auto.value.AutoValue;
+import com.google.common.collect.Interner;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -57,9 +58,9 @@
@AutoCodec
@AutoValue
public abstract static class TestCompletionKey implements SkyKey {
- private static final SkyKeyInterner<TestCompletionKey> interner = SkyKey.newInterner();
+ private static final Interner<TestCompletionKey> interner = BlazeInterners.newWeakInterner();
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static TestCompletionKey create(
ConfiguredTargetKey configuredTargetKey,
@@ -84,10 +85,5 @@
public final boolean valueIsShareable() {
return false;
}
-
- @Override
- public final SkyKeyInterner<TestCompletionKey> getSkyKeyInterner() {
- return interner;
- }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
index 1ba1353..58f0add 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
@@ -39,7 +39,7 @@
import com.google.devtools.build.lib.concurrent.ErrorClassifier;
import com.google.devtools.build.lib.concurrent.NamedForkJoinPool;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.Dirent;
@@ -68,13 +68,12 @@
private static final ForkJoinPool VISITOR_POOL =
NamedForkJoinPool.newNamedPool(
"tree-artifact-visitor", Runtime.getRuntime().availableProcessors());
-
/**
* Comparator based on exec path which works on {@link ActionInput} as opposed to {@link
* com.google.devtools.build.lib.actions.Artifact}. This way, we can use an {@link ActionInput} to
* search {@link #childData}.
*/
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final Comparator<ActionInput> EXEC_PATH_COMPARATOR =
(input1, input2) -> input1.getExecPath().compareTo(input2.getExecPath());
@@ -183,15 +182,15 @@
@SuppressWarnings("WeakerAccess") // Serialization constant.
@SerializationConstant
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static final TreeArtifactValue EMPTY =
new TreeArtifactValue(
MetadataDigestUtils.fromMetadata(ImmutableMap.of()),
EMPTY_MAP,
0L,
- /* archivedRepresentation= */ null,
- /* materializationExecPath= */ null,
- /* entirelyRemote= */ false);
+ /*archivedRepresentation=*/ null,
+ /*materializationExecPath=*/ null,
+ /*entirelyRemote=*/ false);
private final byte[] digest;
private final ImmutableSortedMap<TreeFileArtifact, FileArtifactValue> childData;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameValue.java
index b5cca7d..62a55f4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceNameValue.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -29,7 +29,7 @@
* the WORKSPACE file.
*/
public class WorkspaceNameValue implements SkyValue {
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final SkyKey KEY = () -> SkyFunctions.WORKSPACE_NAME;
private final String workspaceName;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/config/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/config/BUILD
index 563158e..0293d95 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/config/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/config/BUILD
@@ -72,7 +72,6 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingValue.java
index 3fa55dd..6e2b173 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/config/PlatformMappingValue.java
@@ -33,7 +33,6 @@
import com.google.devtools.build.lib.cmdline.RepositoryMapping;
import com.google.devtools.build.lib.concurrent.ThreadSafety;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -84,7 +83,7 @@
}
@AutoCodec.Instantiator
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static Key create(PathFragment workspaceRelativeMappingPath, boolean wasExplicitlySetByUser) {
return interner.intern(new Key(workspaceRelativeMappingPath, wasExplicitlySetByUser));
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
index d05bc91..8f33abb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
@@ -26,7 +26,6 @@
exclude = [
"SerializationConstants.java",
"CodecScanningConstants.java",
- "VisibleForSerialization.java",
],
),
add_opens = [
@@ -54,8 +53,3 @@
"//src/main/java/com/google/devtools/build/lib/util:resource_usage",
],
)
-
-java_library(
- name = "visible-for-serialization",
- srcs = ["VisibleForSerialization.java"],
-)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/VisibleForSerialization.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/VisibleForSerialization.java
deleted file mode 100644
index 15551aa..0000000
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/VisibleForSerialization.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2023 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.skyframe.serialization;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Signals that the annotated element is only visible for use by serialization. It should not be
- * used by other callers.
- *
- * <p>TODO(janakr): Add an ErrorProne checker to enforce this.
- */
-@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD})
-@Retention(RetentionPolicy.SOURCE) // Documentation only.
-public @interface VisibleForSerialization {}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
index eb3a7ea0..0fe0dd1 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
@@ -98,4 +98,13 @@
* com.google.devtools.build.lib.skyframe.serialization.SerializationContext#addExplicitlyAllowedClass}.
*/
Class<?>[] explicitlyAllowClass() default {};
+
+ /**
+ * Signals that the annotated element is only visible for use by serialization. It should not be
+ * used by other callers.
+ *
+ * <p>TODO(janakr): Add an ErrorProne checker to enforce this.
+ */
+ @Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD})
+ @interface VisibleForSerialization {}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/BUILD
index ae29a94..e08f783 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/BUILD
@@ -122,7 +122,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:auto_value",
@@ -192,7 +191,6 @@
"//src/main/java/com/google/devtools/build/lib/analysis/platform",
"//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:auto_value",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsValue.java
index 8470966..b9178a9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredExecutionPlatformsValue.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -39,7 +38,7 @@
/** {@link SkyKey} implementation used for {@link RegisteredExecutionPlatformsFunction}. */
@AutoCodec
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static class Key implements SkyKey {
private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
@@ -50,7 +49,7 @@
}
@AutoCodec.Instantiator
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static Key of(BuildConfigurationKey configurationKey) {
return interner.intern(new Key(configurationKey));
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsValue.java
index 513a1fb..6356593 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/toolchains/RegisteredToolchainsValue.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.analysis.platform.DeclaredToolchainInfo;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.skyframe.config.BuildConfigurationKey;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
@@ -49,7 +48,7 @@
}
@AutoCodec.Instantiator
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static Key of(BuildConfigurationKey configurationKey) {
return interner.intern(new Key(configurationKey));
}
diff --git a/src/main/java/com/google/devtools/build/lib/util/BUILD b/src/main/java/com/google/devtools/build/lib/util/BUILD
index bc801a4..e7c57f3 100644
--- a/src/main/java/com/google/devtools/build/lib/util/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/util/BUILD
@@ -226,7 +226,6 @@
],
deps = [
":string",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/vfs:ospathpolicy",
diff --git a/src/main/java/com/google/devtools/build/lib/util/FileType.java b/src/main/java/com/google/devtools/build/lib/util/FileType.java
index af9f86f..31b134e 100644
--- a/src/main/java/com/google/devtools/build/lib/util/FileType.java
+++ b/src/main/java/com/google/devtools/build/lib/util/FileType.java
@@ -19,7 +19,7 @@
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.vfs.OsPathPolicy;
import java.util.ArrayList;
diff --git a/src/main/java/com/google/devtools/build/lib/util/FileTypeSet.java b/src/main/java/com/google/devtools/build/lib/util/FileTypeSet.java
index 323b786..0a81056 100644
--- a/src/main/java/com/google/devtools/build/lib/util/FileTypeSet.java
+++ b/src/main/java/com/google/devtools/build/lib/util/FileTypeSet.java
@@ -17,7 +17,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/BUILD b/src/main/java/com/google/devtools/build/lib/vfs/BUILD
index 141ce7f..f80997f 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/vfs/BUILD
@@ -68,7 +68,6 @@
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/io:file_symlink_exception",
"//src/main/java/com/google/devtools/build/lib/profiler",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java b/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java
index 74fdb77..c74062e 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/RootedPath.java
@@ -15,7 +15,6 @@
import static com.google.common.base.Preconditions.checkArgument;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.SkyKey;
import java.util.Comparator;
@@ -52,7 +51,7 @@
/** Constructs a {@link RootedPath} from a {@link Root} and path fragment relative to the root. */
@AutoCodec.Instantiator
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static RootedPath createInternal(Root root, PathFragment rootRelativePath) {
checkArgument(
rootRelativePath.isAbsolute() == root.isAbsolute(),
diff --git a/src/main/java/com/google/devtools/build/skyframe/BUILD b/src/main/java/com/google/devtools/build/skyframe/BUILD
index 7b07ff1..d9c920b 100644
--- a/src/main/java/com/google/devtools/build/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/skyframe/BUILD
@@ -28,7 +28,7 @@
"//src/main/java/com/google/devtools/build/lib/bugreport",
"//src/main/java/com/google/devtools/build/lib/collect/compacthashset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util:TestType",
"//third_party:auto_value",
diff --git a/src/main/java/com/google/devtools/build/skyframe/GroupedDeps.java b/src/main/java/com/google/devtools/build/skyframe/GroupedDeps.java
index d396012..e9d1ebf 100644
--- a/src/main/java/com/google/devtools/build/skyframe/GroupedDeps.java
+++ b/src/main/java/com/google/devtools/build/skyframe/GroupedDeps.java
@@ -22,7 +22,7 @@
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.collect.compacthashset.CompactHashSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadHostile;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@@ -338,7 +338,7 @@
return elements.contains(key);
}
- @SerializationConstant @VisibleForSerialization
+ @SerializationConstant @AutoCodec.VisibleForSerialization
static final @Compressed Object EMPTY_COMPRESSED = new Object();
/**
diff --git a/src/main/java/net/starlark/java/eval/Dict.java b/src/main/java/net/starlark/java/eval/Dict.java
index d782efa..6ff9a7e 100644
--- a/src/main/java/net/starlark/java/eval/Dict.java
+++ b/src/main/java/net/starlark/java/eval/Dict.java
@@ -453,13 +453,13 @@
Starlark.checkValid(v);
});
@SuppressWarnings("unchecked")
- ImmutableMap<K, V> immutableMap = (ImmutableMap<K, V>) m;
+ var immutableMap = (ImmutableMap<K, V>) m;
return new Dict<>(immutableMap);
}
if (m instanceof Dict && ((Dict<?, ?>) m).isImmutable()) {
@SuppressWarnings("unchecked")
- Dict<K, V> dict = (Dict<K, V>) m;
+ var dict = (Dict<K, V>) m;
return dict;
}
diff --git a/src/main/java/net/starlark/java/eval/Module.java b/src/main/java/net/starlark/java/eval/Module.java
index b7279a2..740f275 100644
--- a/src/main/java/net/starlark/java/eval/Module.java
+++ b/src/main/java/net/starlark/java/eval/Module.java
@@ -184,7 +184,7 @@
*/
@Nullable
public Object getPredeclared(String name) {
- Object value = predeclared.get(name);
+ var value = predeclared.get(name);
if (value == null) {
return null;
}
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/BUILD b/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
index cf2af7d..c95ca9d 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/BUILD
@@ -474,6 +474,7 @@
"//src/main/protobuf:invocation_policy_java_proto",
"//src/test/java/com/google/devtools/build/lib/buildtool/util",
"//src/test/java/com/google/devtools/build/lib/events:testutil",
+ "//src/test/java/com/google/devtools/build/lib/testutil:TestConstants",
"//src/test/java/com/google/devtools/build/lib/testutil:TestUtils",
"//src/test/java/com/google/devtools/build/skyframe:testutil",
"//third_party:guava",
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD b/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD
index d3bd09d..9e1d90b 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/BUILD
@@ -19,11 +19,11 @@
deps = [
":configured_target_query_helper",
":configured_target_query_test",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/packages:label_printer",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
@@ -42,10 +42,11 @@
deps = [
":configured_target_query_helper",
":configured_target_query_test",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
+ "//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages:label_printer",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//third_party:guava",
"//third_party:junit4",
@@ -66,12 +67,11 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transition_factories",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/patch_transition",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/analysis:test/test_configuration",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/packages:label_printer",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -89,9 +89,9 @@
testonly = 1,
srcs = ["ConfiguredTargetQueryHelper.java"],
deps = [
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/packages:label_printer",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
@@ -111,9 +111,9 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_options",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/split_transition",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/test/java/com/google/devtools/build/lib/analysis/util",
"//src/test/java/com/google/devtools/build/lib/query2/testutil",
@@ -133,11 +133,11 @@
":configured_target_query_test",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:config/execution_transition_factory",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/packages:label_printer",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
@@ -164,11 +164,12 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/transition_factories",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/no_transition",
"//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/transition_factory",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
+ "//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/packages",
"//src/main/java/com/google/devtools/build/lib/packages:label_printer",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/test/java/com/google/devtools/build/lib/analysis/util",
@@ -187,10 +188,10 @@
":configured_target_query_helper",
":configured_target_query_test",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
+ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/analysis:top_level_artifact_context",
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/query2",
- "//src/main/java/com/google/devtools/build/lib/query2/common:cquery-node",
"//src/main/java/com/google/devtools/build/lib/query2/engine",
"//third_party:guava",
"//third_party:junit4",
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallbackTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallbackTest.java
index fc3672a..b5fb358 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallbackTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallbackTest.java
@@ -19,12 +19,12 @@
import static com.google.devtools.build.lib.packages.BuildType.OUTPUT;
import com.google.common.eventbus.EventBus;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.util.MockRule;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
import com.google.devtools.build.lib.query2.engine.QueryExpression;
import com.google.devtools.build.lib.query2.engine.QueryParser;
@@ -75,7 +75,7 @@
Set<String> targetPatternSet = new LinkedHashSet<>();
expression.collectTargetPatterns(targetPatternSet);
helper.setQuerySettings(Setting.NO_IMPLICIT_DEPS);
- PostAnalysisQueryEnvironment<CqueryNode> env =
+ PostAnalysisQueryEnvironment<ConfiguredTarget> env =
((ConfiguredTargetQueryHelper) helper).getPostAnalysisQueryEnvironment(targetPatternSet);
ByteArrayOutputStream output = new ByteArrayOutputStream();
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryHelper.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryHelper.java
index 9fe9d68..b1be089 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryHelper.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryHelper.java
@@ -14,10 +14,10 @@
package com.google.devtools.build.lib.query2.cquery;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.util.AnalysisTestCase;
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment.TopLevelConfigurations;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
import com.google.devtools.build.lib.query2.testutil.AbstractQueryTest.QueryHelper;
import com.google.devtools.build.lib.query2.testutil.PostAnalysisQueryHelper;
@@ -32,7 +32,7 @@
* AnalysisTestCase} must be run manually. @BeforeClass and @AfterClass are completely ignored for
* now.
*/
-public class ConfiguredTargetQueryHelper extends PostAnalysisQueryHelper<CqueryNode> {
+public class ConfiguredTargetQueryHelper extends PostAnalysisQueryHelper<ConfiguredTarget> {
@Override
protected ConfiguredTargetQueryEnvironment getPostAnalysisQueryEnvironment(
WalkableGraph walkableGraph,
@@ -56,7 +56,7 @@
}
@Override
- public String getLabel(CqueryNode target) {
+ public String getLabel(ConfiguredTarget target) {
return target.getOriginalLabel().toString();
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQuerySemanticsTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQuerySemanticsTest.java
index 23c4d76..c81f3e5 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQuerySemanticsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQuerySemanticsTest.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.query2.cquery;
-import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.truth.Truth.assertThat;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
@@ -24,6 +23,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
@@ -38,8 +38,6 @@
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.BuildType;
-import com.google.devtools.build.lib.packages.LabelPrinter;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
import com.google.devtools.build.lib.query2.engine.QueryException;
import com.google.devtools.build.lib.server.FailureDetails;
@@ -123,8 +121,9 @@
setUpLabelsFunctionTests();
// Test that this retrieves the correctly configured version(s) of the dep(s).
- CqueryNode patchDep = Iterables.getOnlyElement(eval("labels('patch_dep', //test:my_rule)"));
- CqueryNode myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
+ ConfiguredTarget patchDep =
+ Iterables.getOnlyElement(eval("labels('patch_dep', //test:my_rule)"));
+ ConfiguredTarget myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
String targetConfiguration = myRule.getConfigurationChecksum();
assertThat(patchDep.getConfigurationChecksum()).doesNotMatch(targetConfiguration);
}
@@ -133,12 +132,12 @@
public void testLabelsFunction_splitTransitionAttribute() throws Exception {
setUpLabelsFunctionTests();
- CqueryNode myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
+ ConfiguredTarget myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
String targetConfiguration = myRule.getConfigurationChecksum();
- Set<CqueryNode> splitDeps = eval("labels('split_dep', //test:my_rule)");
+ Set<ConfiguredTarget> splitDeps = eval("labels('split_dep', //test:my_rule)");
assertThat(splitDeps).hasSize(2);
- for (CqueryNode kct : splitDeps) {
+ for (ConfiguredTarget kct : splitDeps) {
assertThat(kct.getConfigurationChecksum()).doesNotMatch(targetConfiguration);
}
}
@@ -147,13 +146,13 @@
public void testLabelsFunction_labelListAttribute() throws Exception {
setUpLabelsFunctionTests();
- CqueryNode myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
+ ConfiguredTarget myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
String targetConfiguration = myRule.getConfigurationChecksum();
// Test that this works for label_lists as well.
- Set<CqueryNode> deps = eval("labels('patch_dep_list', //test:my_rule)");
+ Set<ConfiguredTarget> deps = eval("labels('patch_dep_list', //test:my_rule)");
assertThat(deps).hasSize(2);
- for (CqueryNode kct : deps) {
+ for (ConfiguredTarget kct : deps) {
assertThat(kct.getConfigurationChecksum()).doesNotMatch(targetConfiguration);
}
}
@@ -196,7 +195,7 @@
"rule_with_dep(name = 'actual', dep = ':dep')",
"rule_with_dep(name = 'dep')");
- CqueryNode dep = Iterables.getOnlyElement(eval("labels('dep', '//test:alias')"));
+ ConfiguredTarget dep = Iterables.getOnlyElement(eval("labels('dep', '//test:alias')"));
assertThat(dep.getLabel()).isEqualTo(Label.parseCanonicalUnchecked("//test:dep"));
}
@@ -224,8 +223,8 @@
"alias(name = 'other_impl_dep', actual = 'impl_dep')",
"simple_rule(name='impl_dep')");
- CqueryNode other = Iterables.getOnlyElement(eval("//test:other_my_rule"));
- CqueryNode myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
+ ConfiguredTarget other = Iterables.getOnlyElement(eval("//test:other_my_rule"));
+ ConfiguredTarget myRule = Iterables.getOnlyElement(eval("//test:my_rule"));
// Note: {@link ConfiguredTarget#getLabel} returns the label of the "actual" value not the
// label of the alias, so we need to check the underlying label.
assertThat(other.getLabel()).isEqualTo(myRule.getLabel());
@@ -250,7 +249,7 @@
writeFile("test/BUILD", "rule_class_transition(name='rule_class')");
- Set<CqueryNode> ruleClass = eval("//test:rule_class");
+ Set<ConfiguredTarget> ruleClass = eval("//test:rule_class");
DummyTestOptions testOptions =
getConfiguration(Iterables.getOnlyElement(ruleClass))
.getOptions()
@@ -377,10 +376,10 @@
// setting --universe_scope we ensure only the transitioned version exists.
helper.setUniverseScope("//test:buildme");
helper.setQuerySettings(Setting.ONLY_TARGET_DEPS, Setting.NO_IMPLICIT_DEPS);
- Set<CqueryNode> result = eval("deps(//test:buildme, 1)");
+ Set<ConfiguredTarget> result = eval("deps(//test:buildme, 1)");
assertThat(result).hasSize(2);
- ImmutableList<CqueryNode> stableOrderList = ImmutableList.copyOf(result);
+ ImmutableList<ConfiguredTarget> stableOrderList = ImmutableList.copyOf(result);
int myDepIndex = stableOrderList.get(0).getLabel().toString().equals("//test:mydep") ? 0 : 1;
BuildConfigurationValue myDepConfig = getConfiguration(stableOrderList.get(myDepIndex));
BuildConfigurationValue stringFlagConfig =
@@ -405,11 +404,11 @@
createConfigRulesAndBuild();
writeFile("mytest/BUILD", "simple_rule(name = 'mytarget')");
- Set<CqueryNode> result = eval("//mytest:mytarget");
+ Set<ConfiguredTarget> result = eval("//mytest:mytarget");
String configHash = getConfiguration(Iterables.getOnlyElement(result)).checksum();
String hashPrefix = configHash.substring(0, configHash.length() / 2);
- Set<CqueryNode> resultFromPrefix = eval("config(//mytest:mytarget," + hashPrefix + ")");
+ Set<ConfiguredTarget> resultFromPrefix = eval("config(//mytest:mytarget," + hashPrefix + ")");
assertThat(resultFromPrefix).containsExactlyElementsIn(result);
}
@@ -418,7 +417,7 @@
createConfigRulesAndBuild();
writeFile("mytest/BUILD", "simple_rule(name = 'mytarget')");
- Set<CqueryNode> result = eval("//mytest:mytarget");
+ Set<ConfiguredTarget> result = eval("//mytest:mytarget");
String configHash = getConfiguration(Iterables.getOnlyElement(result)).checksum();
String rightPrefix = configHash.substring(0, configHash.length() / 2);
char lastChar = rightPrefix.charAt(rightPrefix.length() - 1);
@@ -441,7 +440,7 @@
EvalThrowsResult evalThrowsResult =
evalThrows(
"config(filter(\"??not-a-valid-regex\", //test:foo.java), null)",
- /* unconditionallyThrows= */ true);
+ /*unconditionallyThrows=*/ true);
assertThat(evalThrowsResult.getMessage())
.startsWith("illegal 'filter' pattern regexp '??not-a-valid-regex'");
assertThat(evalThrowsResult.getFailureDetail().hasQuery()).isTrue();
@@ -504,12 +503,12 @@
public void testMultipleTopLevelConfigurations_nullConfigs() throws Exception {
writeFile("test/BUILD", "java_library(name='my_java',", " srcs = ['foo.java'],", ")");
- Set<CqueryNode> result = eval("//test:my_java+//test:foo.java");
+ Set<ConfiguredTarget> result = eval("//test:my_java+//test:foo.java");
assertThat(result).hasSize(2);
- Iterator<CqueryNode> resultIterator = result.iterator();
- CqueryNode first = resultIterator.next();
+ Iterator<ConfiguredTarget> resultIterator = result.iterator();
+ ConfiguredTarget first = resultIterator.next();
if (first.getLabel().toString().equals("//test:foo.java")) {
assertThat(getConfiguration(first)).isNull();
assertThat(getConfiguration(resultIterator.next())).isNotNull();
@@ -539,7 +538,7 @@
// cases cquery prefers the top-level configured one, which won't produce a match since that's
// not the one down this dependency path.
helper.setUniverseScope("//test:buildme");
- Set<CqueryNode> result = eval("somepath(//test:buildme, //test:mydep)");
+ Set<ConfiguredTarget> result = eval("somepath(//test:buildme, //test:mydep)");
assertThat(result.stream().map(kct -> kct.getLabel().toString()).collect(Collectors.toList()))
.contains("//test:mydep");
}
@@ -585,7 +584,8 @@
"simple_rule(name='foo', deps = [':bar'])",
"simple_rule(name='bar')");
- Set<CqueryNode> result = eval("somepath(//test:top, filter(//test:bar, deps(//test:top)))");
+ Set<ConfiguredTarget> result =
+ eval("somepath(//test:top, filter(//test:bar, deps(//test:top)))");
assertThat(result).isNotEmpty();
}
@@ -604,7 +604,7 @@
"simple_rule(name = 'simple')");
helper.setUniverseScope("//test:transitioner,//test:simple");
- Set<CqueryNode> result = eval("//test:simple");
+ Set<ConfiguredTarget> result = eval("//test:simple");
assertThat(result.size()).isEqualTo(2);
}
@@ -626,243 +626,7 @@
"simple_rule(name = 'simple')");
helper.setUniverseScope("//test:transitioner,//test:simple");
- Set<CqueryNode> result = eval("config(//test:simple, target)");
+ Set<ConfiguredTarget> result = eval("config(//test:simple, target)");
assertThat(result.size()).isEqualTo(1);
}
-
- @Test
- public void testAspectDepsAppearInCqueryDeps() throws Exception {
- writeFile(
- "donut/test.bzl",
- "TestAspectInfo = provider('TestAspectInfo', fields = ['info'])",
- "def _test_aspect_impl(target, ctx):",
- " return [",
- " TestAspectInfo(",
- " info = depset([target.label]),",
- " ),",
- " ]",
- "",
- "_test_aspect = aspect(",
- " implementation = _test_aspect_impl,",
- " attr_aspects = ['deps'],",
- " attrs = {",
- " '_test_attr': attr.label(",
- " allow_files = True,",
- " default = Label('//donut:test_filegroup'),",
- " ),",
- " },",
- " provides = [TestAspectInfo],",
- ")",
- "def _test_impl(ctx):",
- " pass",
- "test_rule = rule(",
- " _test_impl,",
- " attrs = {",
- " 'deps': attr.label_list(",
- " aspects = [_test_aspect],",
- " ),",
- " },",
- ")");
- writeFile(
- "donut/BUILD",
- "load(':test.bzl', 'test_rule')",
- "filegroup(",
- " name = 'test_filegroup',",
- " srcs = ['test.bzl'],",
- ")",
- "test_rule(",
- " name = 'test_rule_dep',",
- ")",
- "test_rule(",
- " name = 'test_rule',",
- " deps = [':test_rule_dep'],",
- ")");
-
- helper.setQuerySettings(Setting.INCLUDE_ASPECTS, Setting.EXPLICIT_ASPECTS);
- var result =
- eval("filter(//donut, deps(//donut:test_rule))").stream()
- .map(cf -> cf.getDescription(LabelPrinter.legacy()))
- .collect(ImmutableList.toImmutableList());
- assertThat(result)
- .containsExactly(
- "//donut:test_rule",
- "//donut:test_rule_dep",
- "//donut:test.bzl%_test_aspect of //donut:test_rule_dep",
- "//donut:test.bzl",
- "//donut:test_filegroup");
- }
-
- // TODO: Disable this due to https://github.com/bazelbuild/bazel/pull/21567#issuecomment-1978992760
- // Re-enable once the problem is understood and fixed.
- // @Test
- // public void testAspectOnAspectDepsAppearInCqueryDeps() throws Exception {
- // writeFile(
- // "donut/test.bzl",
- // "TestAspectInfo = provider('TestAspectInfo', fields = ['info'])",
- // "TestAspectOnAspectInfo = provider('TestAspectOnAspectInfo', fields = ['info'])",
- // "def _test_aspect_impl(target, ctx):",
- // " return [",
- // " TestAspectInfo(",
- // " info = depset([target.label]),",
- // " ),",
- // " ]",
- // "_test_aspect = aspect(",
- // " implementation = _test_aspect_impl,",
- // " attr_aspects = ['deps'],",
- // " attrs = {",
- // " '_test_attr': attr.label(",
- // " allow_files = True,",
- // " default = Label('//donut:test_aspect_filegroup'),",
- // " ),",
- // " },",
- // " provides = [TestAspectInfo],",
- // ")",
- // "def _test_aspect_on_aspect_impl(target, ctx):",
- // " return [",
- // " TestAspectOnAspectInfo(",
- // " info = depset(",
- // " direct = [target.label],",
- // " transitive = [target[TestAspectInfo].info],",
- // " ),",
- // " ),",
- // " ]",
- // "_test_aspect_on_aspect = aspect(",
- // " implementation = _test_aspect_on_aspect_impl,",
- // " attr_aspects = ['deps'],",
- // " attrs = {",
- // " '_test_attr': attr.label(",
- // " allow_files = True,",
- // " default = Label('//donut:test_aspect_on_aspect_filegroup'),",
- // " ),",
- // " },",
- // " required_aspect_providers = [TestAspectInfo],",
- // " provides = [TestAspectOnAspectInfo],",
- // ")",
- // "def _test_impl(ctx):",
- // " pass",
- // "test_rule = rule(",
- // " _test_impl,",
- // " attrs = {",
- // " 'deps': attr.label_list(",
- // " aspects = [_test_aspect],",
- // " ),",
- // " },",
- // ")",
- // "def _test_aspect_on_aspect_rule_impl(ctx):",
- // " pass",
- // "test_aspect_on_aspect_rule = rule(",
- // " _test_aspect_on_aspect_rule_impl,",
- // " attrs = {",
- // " 'deps': attr.label_list(",
- // " aspects = [_test_aspect, _test_aspect_on_aspect],",
- // " ),",
- // " },",
- // ")");
- // writeFile("donut/test_aspect.file");
- // writeFile("donut/test_aspect_on_aspect.file");
- // writeFile(
- // "donut/BUILD",
- // "load(':test.bzl', 'test_rule', 'test_aspect_on_aspect_rule')",
- // "filegroup(",
- // " name = 'test_aspect_filegroup',",
- // " srcs = ['test_aspect.file'],",
- // ")",
- // "filegroup(",
- // " name = 'test_aspect_on_aspect_filegroup',",
- // " srcs = ['test_aspect_on_aspect.file'],",
- // ")",
- // "test_rule(",
- // " name = 'test_rule_dep',",
- // ")",
- // "test_rule(",
- // " name = 'test_rule',",
- // " deps = [':test_rule_dep'],",
- // ")",
- // "test_aspect_on_aspect_rule(",
- // " name = 'test_aspect_on_aspect_rule',",
- // " deps = ['test_rule'],",
- // ")");
-
- // helper.setUniverseScope("//donut/...");
- // helper.setQuerySettings(Setting.INCLUDE_ASPECTS, Setting.EXPLICIT_ASPECTS);
- // var result =
- // eval("filter(//donut, deps(//donut:test_aspect_on_aspect_rule))").stream()
- // .map(cf -> cf.getDescription(LabelPrinter.legacy()))
- // .collect(toImmutableList());
- // assertThat(result)
- // .containsExactly(
- // "//donut:test.bzl%_test_aspect_on_aspect on top of"
- // + " [//donut:test.bzl%_test_aspect of //donut:test_rule_dep]",
- // "//donut:test.bzl%_test_aspect_on_aspect on top of"
- // + " [//donut:test.bzl%_test_aspect of //donut:test_rule]",
- // "//donut:test_rule_dep",
- // "//donut:test_rule",
- // "//donut:test.bzl%_test_aspect of //donut:test_rule_dep",
- // "//donut:test.bzl%_test_aspect of //donut:test_rule",
- // "//donut:test_aspect_on_aspect_rule",
- // "//donut:test_aspect.file",
- // "//donut:test_aspect_on_aspect_filegroup",
- // "//donut:test_aspect_on_aspect.file",
- // "//donut:test_aspect_filegroup");
- // }
-
- @Test
- public void testAspectDepsAppearInCqueryRdeps() throws Exception {
- writeFile(
- "donut/test.bzl",
- "TestAspectInfo = provider('TestAspectInfo', fields = ['info'])",
- "def _test_aspect_impl(target, ctx):",
- " return [",
- " TestAspectInfo(",
- " info = depset([target.label]),",
- " ),",
- " ]",
- "",
- "_test_aspect = aspect(",
- " implementation = _test_aspect_impl,",
- " attr_aspects = ['deps'],",
- " attrs = {",
- " '_test_attr': attr.label(",
- " allow_files = True,",
- " default = Label('//donut:test_filegroup'),",
- " ),",
- " },",
- " provides = [TestAspectInfo],",
- ")",
- "def _test_impl(ctx):",
- " pass",
- "test_rule = rule(",
- " _test_impl,",
- " attrs = {",
- " 'deps': attr.label_list(",
- " aspects = [_test_aspect],",
- " ),",
- " },",
- ")");
- writeFile(
- "donut/BUILD",
- "load(':test.bzl', 'test_rule')",
- "filegroup(",
- " name = 'test_filegroup',",
- " srcs = ['test.bzl'],",
- ")",
- "test_rule(",
- " name = 'test_rule_dep',",
- ")",
- "test_rule(",
- " name = 'test_rule',",
- " deps = [':test_rule_dep'],",
- ")");
-
- helper.setQuerySettings(Setting.INCLUDE_ASPECTS, Setting.EXPLICIT_ASPECTS);
- var result =
- eval("rdeps(//donut/..., //donut:test_filegroup)").stream()
- .map(cf -> cf.getDescription(LabelPrinter.legacy()))
- .collect(toImmutableList());
- assertThat(result)
- .containsExactly(
- "//donut:test_filegroup",
- "//donut:test_rule",
- "//donut:test.bzl%_test_aspect of //donut:test_rule_dep");
- }
}
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryTest.java
index ed8e1af..7517601 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetQueryTest.java
@@ -18,6 +18,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
@@ -25,7 +26,6 @@
import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
import com.google.devtools.build.lib.analysis.util.DummyTestFragment.DummyTestOptions;
import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
import com.google.devtools.build.lib.query2.testutil.PostAnalysisQueryTest;
import java.util.HashMap;
@@ -38,10 +38,10 @@
/** Tests for {@link ConfiguredTargetQueryEnvironment}. */
@RunWith(JUnit4.class)
-public abstract class ConfiguredTargetQueryTest extends PostAnalysisQueryTest<CqueryNode> {
+public abstract class ConfiguredTargetQueryTest extends PostAnalysisQueryTest<ConfiguredTarget> {
@Override
- protected QueryHelper<CqueryNode> createQueryHelper() {
+ protected QueryHelper<ConfiguredTarget> createQueryHelper() {
return new ConfiguredTargetQueryHelper();
}
@@ -57,7 +57,7 @@
}
@Override
- protected final BuildConfigurationValue getConfiguration(CqueryNode kct) {
+ protected final BuildConfigurationValue getConfiguration(ConfiguredTarget kct) {
return getHelper()
.getSkyframeExecutor()
.getConfiguration(getHelper().getReporter(), kct.getConfigurationKey());
@@ -93,12 +93,12 @@
public void testMultipleTopLevelConfigurations_nullConfigs() throws Exception {
writeFile("test/BUILD", "java_library(name='my_java',", " srcs = ['foo.java'],", ")");
- Set<CqueryNode> result = eval("//test:my_java+//test:foo.java");
+ Set<ConfiguredTarget> result = eval("//test:my_java+//test:foo.java");
assertThat(result).hasSize(2);
- Iterator<CqueryNode> resultIterator = result.iterator();
- CqueryNode first = resultIterator.next();
+ Iterator<ConfiguredTarget> resultIterator = result.iterator();
+ ConfiguredTarget first = resultIterator.next();
if (first.getLabel().toString().equals("//test:foo.java")) {
assertThat(getConfiguration(first)).isNull();
assertThat(getConfiguration(resultIterator.next())).isNotNull();
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallbackTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallbackTest.java
index a2b0a92..89c17b6 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallbackTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/FilesOutputFormatterCallbackTest.java
@@ -18,13 +18,13 @@
import com.google.common.collect.ImmutableList;
import com.google.common.eventbus.EventBus;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.OutputGroupInfo;
import com.google.devtools.build.lib.analysis.OutputGroupInfo.ValidationMode;
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryExpression;
import com.google.devtools.build.lib.query2.engine.QueryParser;
import java.io.ByteArrayOutputStream;
@@ -112,7 +112,7 @@
QueryExpression expression = QueryParser.parse(queryExpression, getDefaultFunctions());
Set<String> targetPatternSet = new LinkedHashSet<>();
expression.collectTargetPatterns(targetPatternSet);
- PostAnalysisQueryEnvironment<CqueryNode> env =
+ PostAnalysisQueryEnvironment<ConfiguredTarget> env =
((ConfiguredTargetQueryHelper) helper).getPostAnalysisQueryEnvironment(targetPatternSet);
ByteArrayOutputStream output = new ByteArrayOutputStream();
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallbackTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallbackTest.java
index 8c1ebc9..d6b2c38 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallbackTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/GraphOutputFormatterCallbackTest.java
@@ -17,11 +17,11 @@
import com.google.common.collect.ImmutableList;
import com.google.common.eventbus.EventBus;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
import com.google.devtools.build.lib.query2.engine.QueryExpression;
import com.google.devtools.build.lib.query2.engine.QueryParser;
@@ -71,7 +71,7 @@
Set<String> targetPatternSet = new LinkedHashSet<>();
expression.collectTargetPatterns(targetPatternSet);
helper.setQuerySettings(Setting.NO_IMPLICIT_DEPS);
- PostAnalysisQueryEnvironment<CqueryNode> env =
+ PostAnalysisQueryEnvironment<ConfiguredTarget> env =
((ConfiguredTargetQueryHelper) helper).getPostAnalysisQueryEnvironment(targetPatternSet);
ByteArrayOutputStream output = new ByteArrayOutputStream();
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallbackTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallbackTest.java
index 9fe3f5b..4d68513 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallbackTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/ProtoOutputFormatterCallbackTest.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.lib.analysis.AnalysisProtosV2;
import com.google.devtools.build.lib.analysis.AnalysisProtosV2.Configuration;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;
import com.google.devtools.build.lib.analysis.util.MockRule;
import com.google.devtools.build.lib.events.Event;
@@ -33,7 +34,6 @@
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.cquery.CqueryOptions.Transitions;
import com.google.devtools.build.lib.query2.cquery.ProtoOutputFormatterCallback.OutputType;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
@@ -189,9 +189,9 @@
AnalysisProtosV2.ConfiguredTarget parentRuleProto =
getRuleProtoByName(resultsList, "//test:parent_rule");
- Set<CqueryNode> keyedTargets = eval("deps(//test:parent_rule)");
+ Set<ConfiguredTarget> keyedTargets = eval("deps(//test:parent_rule)");
- CqueryNode parentRule = getKeyedTargetByLabel(keyedTargets, "//test:parent_rule");
+ ConfiguredTarget parentRule = getKeyedTargetByLabel(keyedTargets, "//test:parent_rule");
assertThat(parentRuleProto.getConfiguration().getChecksum())
.isEqualTo(parentRule.getConfigurationChecksum());
@@ -211,7 +211,7 @@
AnalysisProtosV2.ConfiguredTarget transitionRuleProto =
getRuleProtoByName(resultsList, "//test:transition_rule");
- CqueryNode transitionRule = getKeyedTargetByLabel(keyedTargets, "//test:transition_rule");
+ ConfiguredTarget transitionRule = getKeyedTargetByLabel(keyedTargets, "//test:transition_rule");
assertThat(transitionRuleProto.getConfiguration().getChecksum())
.isEqualTo(transitionRule.getConfigurationChecksum());
@@ -227,7 +227,7 @@
assertThat(depRuleConfiguration.getMnemonic()).matches("k8-opt-exec-.*");
assertThat(depRuleConfiguration.getIsTool()).isTrue();
- CqueryNode depRule = getKeyedTargetByLabel(keyedTargets, "//test:dep");
+ ConfiguredTarget depRule = getKeyedTargetByLabel(keyedTargets, "//test:dep");
assertThat(depRuleProto.getConfiguration().getChecksum())
.isEqualTo(depRule.getConfigurationChecksum());
@@ -263,7 +263,7 @@
.containsExactly(patchedConfiguredRuleInput, depConfiguredRuleInput);
}
- private CqueryNode getKeyedTargetByLabel(Set<CqueryNode> keyedTargets, String label) {
+ private ConfiguredTarget getKeyedTargetByLabel(Set<ConfiguredTarget> keyedTargets, String label) {
return Iterables.getOnlyElement(
keyedTargets.stream()
.filter(t -> label.equals(t.getLabel().getCanonicalForm()))
@@ -486,7 +486,7 @@
Set<String> targetPatternSet = new LinkedHashSet<>();
expression.collectTargetPatterns(targetPatternSet);
helper.setQuerySettings(Setting.NO_IMPLICIT_DEPS);
- PostAnalysisQueryEnvironment<CqueryNode> env =
+ PostAnalysisQueryEnvironment<ConfiguredTarget> env =
((ConfiguredTargetQueryHelper) helper).getPostAnalysisQueryEnvironment(targetPatternSet);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ProtoOutputFormatterCallback callback =
diff --git a/src/test/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterTest.java b/src/test/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterTest.java
index 1f2982f..6876b35 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/cquery/TransitionsOutputFormatterTest.java
@@ -20,6 +20,7 @@
import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
+import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.TransitionFactories;
import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory;
@@ -29,7 +30,6 @@
import com.google.devtools.build.lib.packages.LabelPrinter;
import com.google.devtools.build.lib.packages.RuleTransitionData;
import com.google.devtools.build.lib.query2.PostAnalysisQueryEnvironment;
-import com.google.devtools.build.lib.query2.common.CqueryNode;
import com.google.devtools.build.lib.query2.cquery.CqueryOptions.Transitions;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
import com.google.devtools.build.lib.query2.engine.QueryExpression;
@@ -235,7 +235,7 @@
Set<String> targetPatternSet = new LinkedHashSet<>();
expression.collectTargetPatterns(targetPatternSet);
helper.setQuerySettings(Setting.NO_IMPLICIT_DEPS);
- PostAnalysisQueryEnvironment<CqueryNode> env =
+ PostAnalysisQueryEnvironment<ConfiguredTarget> env =
((ConfiguredTargetQueryHelper) helper).getPostAnalysisQueryEnvironment(targetPatternSet);
options.transitions = verbosity;
// TODO(blaze-configurability): Test late-bound attributes.
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
index 0436d73..3c21607 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -269,7 +269,6 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:workspace_name_value",
"//src/main/java/com/google/devtools/build/lib/skyframe/config",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant-annotation",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java
index fdfb97f..bfde8fe 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java
@@ -116,7 +116,6 @@
import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationContext;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.testutil.TestUtils;
@@ -1233,7 +1232,7 @@
/** Dummy action that creates a tree output. */
// AutoCodec because the superclass has a WrappedRunnable inside it.
@AutoCodec
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
static class TreeArtifactAction extends TestAction {
@SuppressWarnings("unused") // Only needed for serialization.
private final SpecialArtifact output;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
index 16b86a0..6cd5859 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
@@ -400,7 +400,6 @@
"//src/main/java/com/google/devtools/build/lib/events",
"//src/main/java/com/google/devtools/build/lib/skyframe:precomputed_value",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecTest.java
index 425a71c..ff5009c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecTest.java
@@ -23,6 +23,7 @@
import com.google.common.collect.ImmutableSortedMap;
import com.google.common.collect.Ordering;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException.NoCodecException;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester.VerificationFunction;
diff --git a/src/test/java/com/google/devtools/build/skyframe/BUILD b/src/test/java/com/google/devtools/build/skyframe/BUILD
index 925e544..c62eb1c 100644
--- a/src/test/java/com/google/devtools/build/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/skyframe/BUILD
@@ -35,7 +35,6 @@
deps = [
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/events",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/skyframe",
diff --git a/src/test/java/com/google/devtools/build/skyframe/GraphTester.java b/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
index d8954c3..6b90abd 100644
--- a/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
+++ b/src/test/java/com/google/devtools/build/skyframe/GraphTester.java
@@ -19,14 +19,14 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Interner;
import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.concurrent.BlazeInterners;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
-import com.google.devtools.build.skyframe.SkyKey.SkyKeyInterner;
import com.google.devtools.build.skyframe.SkyframeLookupResult.QueryDepCallback;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.HashMap;
@@ -509,16 +509,16 @@
StringValue.of(String.format(format, StringValue.from(deps.get(key)).getValue()));
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class Key extends AbstractSkyKey<String> {
- private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
+ private static final Interner<Key> interner = BlazeInterners.newWeakInterner();
private Key(String arg) {
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static Key create(String arg) {
return interner.intern(new Key(arg));
@@ -528,23 +528,18 @@
public SkyFunctionName functionName() {
return SkyFunctionName.FOR_TESTING;
}
-
- @Override
- public SkyKeyInterner<Key> getSkyKeyInterner() {
- return interner;
- }
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec
static class NonHermeticKey extends AbstractSkyKey<String> {
- private static final SkyKeyInterner<NonHermeticKey> interner = SkyKey.newInterner();
+ private static final Interner<NonHermeticKey> interner = BlazeInterners.newWeakInterner();
private NonHermeticKey(String arg) {
super(arg);
}
- @VisibleForSerialization
+ @AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
static NonHermeticKey create(String arg) {
return interner.intern(new NonHermeticKey(arg));
@@ -554,11 +549,6 @@
public SkyFunctionName functionName() {
return FOR_TESTING_NONHERMETIC;
}
-
- @Override
- public SkyKeyInterner<NonHermeticKey> getSkyKeyInterner() {
- return interner;
- }
}
private static final SkyFunctionName FOR_TESTING_NONHERMETIC =
diff --git a/src/test/py/bazel/BUILD b/src/test/py/bazel/BUILD
index 40c9228..ea335ac 100644
--- a/src/test/py/bazel/BUILD
+++ b/src/test/py/bazel/BUILD
@@ -305,10 +305,6 @@
size = "medium",
srcs = ["bzlmod/bazel_fetch_test.py"],
data = ["//tools/build_defs/repo:http_src"],
- shard_count = 5,
- tags = [
- "requires-network",
- ],
deps = [
":bzlmod_test_utils",
":test_base",
diff --git a/src/test/py/bazel/bzlmod/bazel_fetch_test.py b/src/test/py/bazel/bzlmod/bazel_fetch_test.py
index cec2f7d..072caed 100644
--- a/src/test/py/bazel/bzlmod/bazel_fetch_test.py
+++ b/src/test/py/bazel/bzlmod/bazel_fetch_test.py
@@ -37,7 +37,6 @@
'common --noenable_workspace',
'common --experimental_isolated_extension_usages',
'common --registry=' + self.main_registry.getURL(),
- 'common --registry=https://bcr.bazel.build',
'common --verbose_failures',
# Set an explicit Java language version
'common --java_language_version=8',
@@ -262,43 +261,6 @@
_, _, stderr = self.RunBazel(['fetch', '--repo=@hello', '--force'])
self.assertIn('No more Orange Juice!', ''.join(stderr))
- def testFetchTarget(self):
- self.main_registry.createCcModule('aaa', '1.0').createCcModule(
- 'bbb', '1.0', {'aaa': '1.0'}
- )
- self.ScratchFile(
- 'MODULE.bazel',
- [
- 'bazel_dep(name = "bbb", version = "1.0")',
- ],
- )
- self.ScratchFile(
- 'BUILD',
- [
- 'cc_binary(',
- ' name = "main",',
- ' srcs = ["main.cc"],',
- ' deps = [',
- ' "@bbb//:lib_bbb",',
- ' ],',
- ')',
- ],
- )
- self.ScratchFile(
- 'main.cc',
- [
- '#include "aaa.h"',
- 'int main() {',
- ' hello_aaa("Hello there!");',
- '}',
- ],
- )
- self.RunBazel(['fetch', '//:main'])
- # If we can run the target with --nofetch, this means we successfully
- # fetched all its needed repos
- _, stdout, _ = self.RunBazel(['run', '//:main', '--nofetch'])
- self.assertIn('Hello there! => aaa@1.0', stdout)
-
if __name__ == '__main__':
absltest.main()
diff --git a/src/test/py/bazel/bzlmod/external_repo_completion_test.py b/src/test/py/bazel/bzlmod/external_repo_completion_test.py
index 95bceed..ac5f699 100644
--- a/src/test/py/bazel/bzlmod/external_repo_completion_test.py
+++ b/src/test/py/bazel/bzlmod/external_repo_completion_test.py
@@ -139,7 +139,7 @@
self.main_registry.createLocalPathModule('ext', '1.0', 'ext')
scratchFile(
self.projects_dir.joinpath('ext', 'BUILD'),
- ['cc_library(name="lib_ext", visibility = ["//visibility:public"])'],
+ ['cc_library(name="lib_ext")'],
)
scratchFile(
self.projects_dir.joinpath('ext', 'tools', 'BUILD'),
@@ -153,7 +153,7 @@
self.main_registry.createLocalPathModule('ext2', '1.0', 'ext2')
scratchFile(
self.projects_dir.joinpath('ext2', 'BUILD'),
- ['cc_library(name="lib_ext2", visibility = ["//visibility:public"])'],
+ ['cc_library(name="lib_ext2")'],
)
scratchFile(self.projects_dir.joinpath('ext2', 'ext.bzl'), ext_src)