diff options
author | cpeyser <cpeyser@google.com> | 2018-03-02 10:20:15 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-02 10:22:30 -0800 |
commit | eee53d3a33dde441f7e7adaecde81ef2d3db7c1b (patch) | |
tree | 0c6ddd2c54993b9b919e2e59faa0ddd1de117bb0 /src/main/java/com/google/devtools/build/lib/analysis | |
parent | d1201c8e61ee77feabeb83da88e0eae049087a09 (diff) |
@AutoCodec ConfiguredTargetValue.
PiperOrigin-RevId: 187635570
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
8 files changed, 49 insertions, 32 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java index 2fc824a10f..a2ba6867df 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java @@ -24,6 +24,8 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.EventHandler; +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.Fingerprint; import com.google.devtools.build.lib.vfs.PathFragment; import java.io.BufferedWriter; @@ -40,15 +42,15 @@ import java.util.Map; import javax.annotation.Nullable; /** - * Action to create a manifest of input files for processing by a subsequent - * build step (e.g. runfiles symlinking or archive building). + * Action to create a manifest of input files for processing by a subsequent build step (e.g. + * runfiles symlinking or archive building). * - * <p>The manifest's format is specifiable by {@link ManifestType}, in - * accordance with the needs of the calling functionality. + * <p>The manifest's format is specifiable by {@link ManifestType}, in accordance with the needs of + * the calling functionality. * - * <p>Note that this action carefully avoids building the manifest content in - * memory. + * <p>Note that this action carefully avoids building the manifest content in memory. */ +@AutoCodec @Immutable // if all ManifestWriter implementations are immutable public final class SourceManifestAction extends AbstractFileWriteAction { @@ -93,17 +95,18 @@ public final class SourceManifestAction extends AbstractFileWriteAction { private final Runfiles runfiles; /** - * Creates a new AbstractSourceManifestAction instance using latin1 encoding - * to write the manifest file and with a specified root path for manifest entries. + * Creates a new AbstractSourceManifestAction instance using latin1 encoding to write the manifest + * file and with a specified root path for manifest entries. * * @param manifestWriter the strategy to use to write manifest entries * @param owner the action owner - * @param output the file to which to write the manifest + * @param primaryOutput the file to which to write the manifest * @param runfiles runfiles */ - private SourceManifestAction(ManifestWriter manifestWriter, ActionOwner owner, Artifact output, - Runfiles runfiles) { - super(owner, getDependencies(runfiles), output, false); + @VisibleForSerialization + SourceManifestAction( + ManifestWriter manifestWriter, ActionOwner owner, Artifact primaryOutput, Runfiles runfiles) { + super(owner, getDependencies(runfiles), primaryOutput, false); this.manifestWriter = manifestWriter; this.runfiles = runfiles; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java index d0aba38bdc..13b7aaaead 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java @@ -76,7 +76,10 @@ public class SymlinkAction extends AbstractAction { Artifact primaryInput, Artifact primaryOutput, String progressMessage) { - super(owner, ImmutableList.of(primaryInput), ImmutableList.of(primaryOutput)); + super( + owner, + primaryInput != null ? ImmutableList.of(primaryInput) : Artifact.NO_ARTIFACTS, + ImmutableList.of(primaryOutput)); this.inputPath = inputPath; this.progressMessage = progressMessage; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java index 372ec570e1..770fee7edd 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java @@ -41,6 +41,7 @@ import com.google.devtools.build.lib.packages.OutputFile; import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents; import com.google.devtools.build.lib.packages.Provider; import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; 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.skylarkinterface.SkylarkPrinter; @@ -55,6 +56,7 @@ import javax.annotation.Nullable; * analyzed rule. For more information about how analysis works, see {@link * com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory}. */ +@AutoCodec public final class RuleConfiguredTarget extends AbstractConfiguredTarget { /** * The configuration transition for an attribute through which a prerequisite diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java index 7dc850e254..c1ce9f0a1a 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentCollection.java @@ -21,16 +21,18 @@ import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.EnvironmentLabels; +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; -/** - * Contains a set of {@link Environment} labels and their associated groups. - */ +/** Contains a set of {@link Environment} labels and their associated groups. */ +@AutoCodec @Immutable public class EnvironmentCollection { private final ImmutableMultimap<EnvironmentLabels, Label> map; - private EnvironmentCollection(ImmutableMultimap<EnvironmentLabels, Label> map) { + @VisibleForSerialization + EnvironmentCollection(ImmutableMultimap<EnvironmentLabels, Label> map) { this.map = map; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java index 1b89bda6ba..c1eaac7419 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/SupportedEnvironments.java @@ -17,11 +17,11 @@ package com.google.devtools.build.lib.analysis.constraints; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.LabelAndLocation; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import java.util.Map; -/** - * Standard {@link SupportedEnvironmentsProvider} implementation. - */ +/** Standard {@link SupportedEnvironmentsProvider} implementation. */ +@AutoCodec public class SupportedEnvironments implements SupportedEnvironmentsProvider { private final EnvironmentCollection staticEnvironments; private final EnvironmentCollection refinedEnvironments; diff --git a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java index d2f080ee2a..4b2ef4bacb 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java @@ -26,6 +26,7 @@ import com.google.devtools.build.lib.actions.UserExecException; import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction; import com.google.devtools.build.lib.analysis.actions.ProtoDeterministicWriter; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.util.Fingerprint; import java.io.IOException; @@ -34,17 +35,17 @@ import java.io.IOException; * .xa file for use by an extra action. This can only be done at execution time because actions may * store information only known at execution time into the protocol buffer. */ +@AutoCodec @Immutable // if shadowedAction is immutable public final class ExtraActionInfoFileWriteAction extends AbstractFileWriteAction { private static final String UUID = "1759f81d-e72e-477d-b182-c4532bdbaeeb"; private final Action shadowedAction; - ExtraActionInfoFileWriteAction(ActionOwner owner, Artifact extraActionInfoFile, - Action shadowedAction) { - super(owner, ImmutableList.<Artifact>of(), extraActionInfoFile, false); + ExtraActionInfoFileWriteAction(ActionOwner owner, Artifact primaryOutput, Action shadowedAction) { + super(owner, ImmutableList.<Artifact>of(), primaryOutput, false); - this.shadowedAction = Preconditions.checkNotNull(shadowedAction, extraActionInfoFile); + this.shadowedAction = Preconditions.checkNotNull(shadowedAction, primaryOutput); } @Override 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 0768a8b624..f6601af480 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,6 +21,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.NativeInfo; import com.google.devtools.build.lib.packages.NativeProvider; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.syntax.EvalException; @@ -38,6 +39,7 @@ import java.util.Map; doc = "Provides access to data about a specific toolchain.", category = SkylarkModuleCategory.PROVIDER ) +@AutoCodec @Immutable public class ToolchainInfo extends NativeInfo { @@ -57,6 +59,7 @@ public class ToolchainInfo extends NativeInfo { /*types=*/ ImmutableList.<SkylarkType>of(SkylarkType.DICT)); /** Skylark constructor and identifier for this provider. */ + @AutoCodec public static final NativeProvider<ToolchainInfo> PROVIDER = new NativeProvider<ToolchainInfo>(ToolchainInfo.class, SKYLARK_NAME, SIGNATURE) { @Override @@ -68,8 +71,9 @@ public class ToolchainInfo extends NativeInfo { } }; - public ToolchainInfo(Map<String, Object> toolchainData, Location loc) { - super(PROVIDER, ImmutableMap.copyOf(toolchainData), loc); + @AutoCodec.Instantiator + public ToolchainInfo(Map<String, Object> values, Location location) { + super(PROVIDER, ImmutableMap.copyOf(values), location); } public static ToolchainInfo create(Map<String, Object> toolchainData) { diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java b/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java index b400440ca0..9066595769 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/test/BaselineCoverageAction.java @@ -30,6 +30,8 @@ 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.ThreadSafety.Immutable; +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.Fingerprint; import com.google.devtools.build.lib.vfs.PathFragment; import java.io.IOException; @@ -38,18 +40,18 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; -/** - * Generates baseline (empty) coverage for the given non-test target. - */ +/** Generates baseline (empty) coverage for the given non-test target. */ @VisibleForTesting +@AutoCodec @Immutable public final class BaselineCoverageAction extends AbstractFileWriteAction implements NotifyOnActionCacheHit { private final NestedSet<Artifact> instrumentedFiles; - private BaselineCoverageAction( - ActionOwner owner, NestedSet<Artifact> instrumentedFiles, Artifact output) { - super(owner, ImmutableList.<Artifact>of(), output, false); + @VisibleForSerialization + BaselineCoverageAction( + ActionOwner owner, NestedSet<Artifact> instrumentedFiles, Artifact primaryOutput) { + super(owner, ImmutableList.<Artifact>of(), primaryOutput, false); this.instrumentedFiles = instrumentedFiles; } |