Automatic code cleanup.
PiperOrigin-RevId: 459067450
Change-Id: Ib4fec6f79f98fb5ed2f20083539a02ed6159ecbc
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
index f65d8cf..b03d399 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
@@ -29,6 +29,7 @@
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@@ -77,6 +78,7 @@
* {@code ruleContext}, in HOST mode. Populates manifests, remoteRunfiles and label map where
* required.
*/
+ @CanIgnoreReturnValue
public Builder addHostToolDependencies(String toolAttributeName) {
List<? extends TransitiveInfoCollection> dependencies =
ruleContext.getPrerequisites(toolAttributeName);
@@ -98,6 +100,7 @@
* Adds tools, as a set of executable binaries. Populates manifests, remoteRunfiles and label
* map where required.
*/
+ @CanIgnoreReturnValue
public Builder addToolDependencies(
Iterable<? extends TransitiveInfoCollection> toolDependencies) {
this.toolDependencies.add(toolDependencies);
@@ -105,6 +108,7 @@
}
/** Adds files to set of known files of label. Used for resolving $(location) variables. */
+ @CanIgnoreReturnValue
public Builder addLabelMap(Map<Label, ? extends Iterable<Artifact>> labelMap) {
this.labelMap.putAll(labelMap);
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
index e488290..4f41753 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
@@ -32,6 +32,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.Provider;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;
@@ -129,6 +130,7 @@
this.ruleContext = ruleContext;
}
+ @CanIgnoreReturnValue
public <T extends TransitiveInfoProvider> Builder addProvider(
Class<? extends T> providerClass, T provider) {
Preconditions.checkNotNull(provider);
@@ -138,6 +140,7 @@
}
/** Adds a provider to the aspect. */
+ @CanIgnoreReturnValue
public Builder addProvider(TransitiveInfoProvider provider) {
Preconditions.checkNotNull(provider);
addProvider(TransitiveInfoProviderEffectiveClassHelper.get(provider), provider);
@@ -149,6 +152,7 @@
}
/** Adds providers to the aspect. */
+ @CanIgnoreReturnValue
public Builder addProviders(TransitiveInfoProviderMap providers) {
this.providers.addAll(providers);
return this;
@@ -160,6 +164,7 @@
}
/** Adds providers to the aspect. */
+ @CanIgnoreReturnValue
public Builder addProviders(Iterable<TransitiveInfoProvider> providers) {
for (TransitiveInfoProvider provider : providers) {
addProvider(provider);
@@ -167,9 +172,8 @@
return this;
}
- /**
- * Adds a set of files to an output group.
- */
+ /** Adds a set of files to an output group. */
+ @CanIgnoreReturnValue
public Builder addOutputGroup(String name, NestedSet<Artifact> artifacts) {
outputGroupBuilders
.computeIfAbsent(name, k -> NestedSetBuilder.stableOrder())
@@ -177,11 +181,13 @@
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkTransitiveInfo(String name, Object value) {
providers.put(name, value);
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkDeclaredProvider(Info declaredProvider) throws EvalException {
Provider constructor = declaredProvider.getProvider();
if (!constructor.isExported()) {
@@ -198,6 +204,7 @@
providers.put(declaredProvider);
}
+ @CanIgnoreReturnValue
public Builder addNativeDeclaredProvider(Info declaredProvider) {
Provider constructor = declaredProvider.getProvider();
Preconditions.checkState(constructor.isExported());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 4e11d14..d8ebb92 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -59,6 +59,7 @@
import com.google.devtools.build.lib.vfs.Root;
import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
import com.google.devtools.common.options.OptionDefinition;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -178,22 +179,26 @@
// TODO(b/192694287): Remove once we migrate all tests from the allowlist
@Nullable private Label networkAllowlistForTests;
+ @CanIgnoreReturnValue
public Builder addWorkspaceFilePrefix(String contents) {
defaultWorkspaceFilePrefix.append(contents);
return this;
}
+ @CanIgnoreReturnValue
public Builder addWorkspaceFileSuffix(String contents) {
defaultWorkspaceFileSuffix.append(contents);
return this;
}
+ @CanIgnoreReturnValue
@VisibleForTesting
public Builder clearWorkspaceFileSuffixForTesting() {
defaultWorkspaceFileSuffix.delete(0, defaultWorkspaceFileSuffix.length());
return this;
}
+ @CanIgnoreReturnValue
public Builder setPrelude(String preludeLabelString) {
try {
this.preludeLabel = Label.parseAbsolute(preludeLabelString, ImmutableMap.of());
@@ -205,11 +210,13 @@
return this;
}
+ @CanIgnoreReturnValue
public Builder setRunfilesPrefix(String runfilesPrefix) {
this.runfilesPrefix = runfilesPrefix;
return this;
}
+ @CanIgnoreReturnValue
public Builder setToolsRepository(RepositoryName toolsRepository) {
this.toolsRepository = toolsRepository;
return this;
@@ -224,6 +231,7 @@
* #useDummyBuiltinsBzl} if they do not rely on any native rules that may be migratable to
* Starlark.
*/
+ @CanIgnoreReturnValue
public Builder setBuiltinsBzlZipResource(String name) {
this.builtinsBzlZipResource = name;
this.useDummyBuiltinsBzlInsteadOfResource = false;
@@ -239,6 +247,7 @@
* this method, but not tests that use AnalysisMock. Otherwise the test may break when a native
* rule is migrated to Starlark via builtins injection.
*/
+ @CanIgnoreReturnValue
public Builder useDummyBuiltinsBzl() {
this.builtinsBzlZipResource = null;
this.useDummyBuiltinsBzlInsteadOfResource = true;
@@ -251,21 +260,25 @@
* <p>This is required if the rule class provider will be used with {@code
* --experimental_builtins_bzl_path=%workspace%}, but can be skipped in unit tests.
*/
+ @CanIgnoreReturnValue
public Builder setBuiltinsBzlPackagePathInSource(String path) {
this.builtinsBzlPackagePathInSource = path;
return this;
}
+ @CanIgnoreReturnValue
public Builder setPrerequisiteValidator(PrerequisiteValidator prerequisiteValidator) {
this.prerequisiteValidator = prerequisiteValidator;
return this;
}
+ @CanIgnoreReturnValue
public Builder addBuildInfoFactory(BuildInfoFactory factory) {
buildInfoFactories.add(factory);
return this;
}
+ @CanIgnoreReturnValue
public Builder addRuleDefinition(RuleDefinition ruleDefinition) {
Class<? extends RuleDefinition> ruleDefinitionClass = ruleDefinition.getClass();
ruleDefinitionMap.put(ruleDefinitionClass.getName(), ruleDefinition);
@@ -277,6 +290,7 @@
return this;
}
+ @CanIgnoreReturnValue
public Builder addNativeAspectClass(NativeAspectClass aspectFactoryClass) {
nativeAspectClassMap.put(aspectFactoryClass.getName(), aspectFactoryClass);
return this;
@@ -288,6 +302,7 @@
* <p>Note that configuration fragments annotated with a Starlark name must have a unique name;
* no two different configuration fragments can share the same name.
*/
+ @CanIgnoreReturnValue
public Builder addConfigurationFragment(Class<? extends Fragment> fragmentClass) {
configurationFragmentClasses.add(fragmentClass);
return this;
@@ -299,42 +314,50 @@
* <p>If {@link #addConfigurationFragment} adds a fragment that also requires these options,
* this method is redundant.
*/
+ @CanIgnoreReturnValue
public Builder addConfigurationOptions(Class<? extends FragmentOptions> configurationOptions) {
this.configurationOptions.add(configurationOptions);
return this;
}
+ @CanIgnoreReturnValue
public Builder addUniversalConfigurationFragment(Class<? extends Fragment> fragment) {
this.universalFragments.add(fragment);
addConfigurationFragment(fragment);
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkBootstrap(Bootstrap bootstrap) {
this.starlarkBootstraps.add(bootstrap);
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkAccessibleTopLevels(String name, Object object) {
this.starlarkAccessibleTopLevels.put(name, object);
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkBuiltinsInternal(String name, Object object) {
this.starlarkBuiltinsInternals.put(name, object);
return this;
}
+ @CanIgnoreReturnValue
public Builder addSymlinkDefinition(SymlinkDefinition symlinkDefinition) {
this.symlinkDefinitions.add(symlinkDefinition);
return this;
}
+ @CanIgnoreReturnValue
public Builder addReservedActionMnemonic(String mnemonic) {
this.reservedActionMnemonics.add(mnemonic);
return this;
}
+ @CanIgnoreReturnValue
public Builder setActionEnvironmentProvider(
Function<BuildOptions, ActionEnvironment> actionEnvironmentProvider) {
this.actionEnvironmentProvider = actionEnvironmentProvider;
@@ -346,6 +369,7 @@
* don't depend on rules that aren't compatible with the same environments. Defaults to {@link
* ConstraintSemantics}. See {@link ConstraintSemantics} for more details.
*/
+ @CanIgnoreReturnValue
public Builder setConstraintSemantics(ConstraintSemantics<RuleContext> constraintSemantics) {
this.constraintSemantics = constraintSemantics;
return this;
@@ -355,6 +379,7 @@
* Sets the policy for checking if third_party rules declare <code>licenses()</code>. See {@link
* #thirdPartyLicenseExistencePolicy} for the default value.
*/
+ @CanIgnoreReturnValue
public Builder setThirdPartyLicenseExistencePolicy(ThirdPartyLicenseExistencePolicy policy) {
this.thirdPartyLicenseExistencePolicy = policy;
return this;
@@ -370,6 +395,7 @@
* feature flags, and support for this transition factory will likely be removed at some point
* in the future (whenever automatic trimming is sufficiently workable).
*/
+ @CanIgnoreReturnValue
public Builder addTrimmingTransitionFactory(TransitionFactory<RuleTransitionData> factory) {
Preconditions.checkNotNull(factory);
Preconditions.checkArgument(!factory.isSplit());
@@ -383,6 +409,7 @@
}
/** Sets the transition manual feature flag trimming should apply to toolchain deps. */
+ @CanIgnoreReturnValue
public Builder setToolchainTaggedTrimmingTransition(PatchTransition transition) {
Preconditions.checkNotNull(transition);
Preconditions.checkState(toolchainTaggedTrimmingTransition == null);
@@ -406,6 +433,7 @@
* Sets the predicate which determines whether the analysis cache should be invalidated for the
* given options diff.
*/
+ @CanIgnoreReturnValue
public Builder setShouldInvalidateCacheForOptionDiff(
OptionsDiffPredicate shouldInvalidateCacheForOptionDiff) {
Preconditions.checkState(
@@ -584,6 +612,7 @@
return Optional.ofNullable(networkAllowlistForTests);
}
+ @CanIgnoreReturnValue
public Builder setNetworkAllowlistForTests(Label allowlist) {
networkAllowlistForTests = allowlist;
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsProvider.java
index 8e3e1ef..1481894 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RequiredConfigFragmentsProvider.java
@@ -28,6 +28,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.ClassName;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
@@ -118,41 +119,49 @@
private Builder() {}
+ @CanIgnoreReturnValue
public Builder addOptionsClass(Class<? extends FragmentOptions> optionsClass) {
optionsClasses = append(optionsClasses, optionsClass);
return this;
}
+ @CanIgnoreReturnValue
public Builder addOptionsClasses(Collection<Class<? extends FragmentOptions>> optionsClasses) {
this.optionsClasses = appendAll(this.optionsClasses, optionsClasses);
return this;
}
+ @CanIgnoreReturnValue
public Builder addFragmentClasses(Collection<Class<? extends Fragment>> fragmentClasses) {
this.fragmentClasses = appendAll(this.fragmentClasses, fragmentClasses);
return this;
}
+ @CanIgnoreReturnValue
public Builder addDefine(String define) {
defines = append(defines, define);
return this;
}
+ @CanIgnoreReturnValue
public Builder addDefines(Collection<String> defines) {
this.defines = appendAll(this.defines, defines);
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkOption(Label starlarkOption) {
starlarkOptions = append(starlarkOptions, starlarkOption);
return this;
}
+ @CanIgnoreReturnValue
public Builder addStarlarkOptions(Collection<Label> starlarkOptions) {
this.starlarkOptions = appendAll(this.starlarkOptions, starlarkOptions);
return this;
}
+ @CanIgnoreReturnValue
public Builder merge(RequiredConfigFragmentsProvider provider) {
optionsClasses = appendAll(optionsClasses, provider.getOptionsClasses());
fragmentClasses = appendAll(fragmentClasses, provider.getFragmentClasses());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
index fed2278..7ca795e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
@@ -56,6 +56,7 @@
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.packages.Type;
import com.google.devtools.build.lib.packages.Type.LabelClass;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -491,6 +492,7 @@
* Add files required to run the target. Artifacts from {@link #setFilesToBuild} and the runfiles
* middleman, if any, are added automatically.
*/
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addFilesToRun(NestedSet<Artifact> files) {
filesToRunBuilder.addTransitive(files);
return this;
@@ -507,6 +509,7 @@
}
/** Add a specific provider with a given value. */
+ @CanIgnoreReturnValue
public <T extends TransitiveInfoProvider> RuleConfiguredTargetBuilder addProvider(
Class<? extends T> key, T value) {
providersBuilder.put(key, value);
@@ -514,12 +517,14 @@
}
/** Adds a specific provider. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addProvider(TransitiveInfoProvider provider) {
providersBuilder.add(provider);
return this;
}
/** Add a collection of specific providers. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addProviders(TransitiveInfoProviderMap providers) {
providersBuilder.addAll(providers);
return this;
@@ -533,6 +538,7 @@
*
* <p>Use {@link #addNativeDeclaredProvider(Info)} in definitions of native rules.
*/
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addStarlarkDeclaredProvider(Info provider) {
Provider constructor = provider.getProvider();
// Starlark providers are already exported (enforced by SRCTU.getProviderKey).
@@ -554,6 +560,7 @@
*
* <p>Use {@link #addStarlarkDeclaredProvider(Info)} for Starlark rule implementations.
*/
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addNativeDeclaredProviders(Iterable<Info> providers) {
for (Info provider : providers) {
addNativeDeclaredProvider(provider);
@@ -567,6 +574,7 @@
*
* <p>Use {@link #addStarlarkDeclaredProvider(Info)} for Starlark rule implementations.
*/
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addNativeDeclaredProvider(Info provider) {
Provider constructor = provider.getProvider();
Preconditions.checkState(constructor.isExported());
@@ -591,14 +599,14 @@
}
/** Add a Starlark transitive info. The provider value must be safe. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addStarlarkTransitiveInfo(String name, Object value) {
providersBuilder.put(name, value);
return this;
}
- /**
- * Set the runfiles support for executable targets.
- */
+ /** Set the runfiles support for executable targets. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder setRunfilesSupport(
RunfilesSupport runfilesSupport, Artifact executable) {
this.runfilesSupport = runfilesSupport;
@@ -606,14 +614,14 @@
return this;
}
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addTestActionTools(List<Artifact> tools) {
this.additionalTestActionTools.addAll(tools);
return this;
}
- /**
- * Set the files to build.
- */
+ /** Set the files to build. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder setFilesToBuild(NestedSet<Artifact> filesToBuild) {
this.filesToBuild = filesToBuild;
return this;
@@ -630,25 +638,22 @@
return result;
}
- /**
- * Adds a set of files to an output group.
- */
+ /** Adds a set of files to an output group. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addOutputGroup(String name, NestedSet<Artifact> artifacts) {
getOutputGroupBuilder(name).addTransitive(artifacts);
return this;
}
- /**
- * Adds a file to an output group.
- */
+ /** Adds a file to an output group. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addOutputGroup(String name, Artifact artifact) {
getOutputGroupBuilder(name).add(artifact);
return this;
}
- /**
- * Adds multiple output groups.
- */
+ /** Adds multiple output groups. */
+ @CanIgnoreReturnValue
public RuleConfiguredTargetBuilder addOutputGroups(Map<String, NestedSet<Artifact>> groups) {
for (Map.Entry<String, NestedSet<Artifact>> group : groups.entrySet()) {
getOutputGroupBuilder(group.getKey()).addTransitive(group.getValue());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 478b191..58dc511 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -97,6 +97,7 @@
import com.google.devtools.build.lib.util.StringUtil;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -1736,31 +1737,37 @@
}
}
+ @CanIgnoreReturnValue
public Builder setRuleClassProvider(ConfiguredRuleClassProvider ruleClassProvider) {
this.ruleClassProvider = ruleClassProvider;
return this;
}
+ @CanIgnoreReturnValue
public Builder setHostConfiguration(BuildConfigurationValue hostConfiguration) {
this.hostConfiguration = hostConfiguration;
return this;
}
+ @CanIgnoreReturnValue
public Builder setConfigurationFragmentPolicy(ConfigurationFragmentPolicy policy) {
this.configurationFragmentPolicy = policy;
return this;
}
+ @CanIgnoreReturnValue
public Builder setActionOwnerSymbol(ActionLookupKey actionOwnerSymbol) {
this.actionOwnerSymbol = actionOwnerSymbol;
return this;
}
+ @CanIgnoreReturnValue
public Builder setMutability(Mutability mutability) {
this.mutability = mutability;
return this;
}
+ @CanIgnoreReturnValue
public Builder setVisibility(NestedSet<PackageGroupContents> visibility) {
this.visibility = visibility;
return this;
@@ -1770,6 +1777,7 @@
* Sets the prerequisites and checks their visibility. It also generates appropriate error or
* warning messages and sets the error flag as appropriate.
*/
+ @CanIgnoreReturnValue
public Builder setPrerequisites(
OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap) {
this.prerequisiteMap = Preconditions.checkNotNull(prerequisiteMap);
@@ -1777,6 +1785,7 @@
}
/** Adds attributes which are defined by an Aspect (and not by RuleClass). */
+ @CanIgnoreReturnValue
public Builder setAspectAttributes(Map<String, Attribute> aspectAttributes) {
this.aspectAttributes = ImmutableMap.copyOf(aspectAttributes);
return this;
@@ -1786,12 +1795,14 @@
* Sets the configuration conditions needed to determine which paths to follow for this rule's
* configurable attributes.
*/
+ @CanIgnoreReturnValue
public Builder setConfigConditions(ConfigConditions configConditions) {
this.configConditions = Preconditions.checkNotNull(configConditions);
return this;
}
/** Sets the collection of {@link ResolvedToolchainContext}s available to this rule. */
+ @CanIgnoreReturnValue
@VisibleForTesting
public Builder setToolchainContexts(
ToolchainCollection<ResolvedToolchainContext> toolchainContexts) {
@@ -1802,6 +1813,7 @@
return this;
}
+ @CanIgnoreReturnValue
public Builder setExecGroupCollectionBuilder(
ExecGroupCollection.Builder execGroupCollectionBuilder) {
this.execGroupCollectionBuilder = execGroupCollectionBuilder;
@@ -1812,11 +1824,13 @@
* Warning: if you set the exec properties using this method any exec_properties attribute value
* will be ignored in favor of this value.
*/
+ @CanIgnoreReturnValue
public Builder setExecProperties(ImmutableMap<String, String> execProperties) {
this.rawExecProperties = execProperties;
return this;
}
+ @CanIgnoreReturnValue
public Builder setRequiredConfigFragments(
@Nullable RequiredConfigFragmentsProvider requiredConfigFragments) {
this.requiredConfigFragments = requiredConfigFragments;
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 9b73a4a..1302588 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
@@ -40,6 +40,7 @@
import com.google.devtools.build.lib.starlarkbuildapi.SymlinkEntryApi;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -594,6 +595,7 @@
}
/** Set whether we should warn about conflicting symlink entries. */
+ @CanIgnoreReturnValue
public Runfiles setConflictPolicy(ConflictPolicy conflictPolicy) {
this.conflictPolicy = conflictPolicy;
return this;
@@ -742,9 +744,8 @@
legacyExternalRunfiles);
}
- /**
- * Adds an artifact to the internal collection of artifacts.
- */
+ /** Adds an artifact to the internal collection of artifacts. */
+ @CanIgnoreReturnValue
public Builder addArtifact(Artifact artifact) {
Preconditions.checkNotNull(artifact);
Preconditions.checkArgument(
@@ -753,9 +754,8 @@
return this;
}
- /**
- * Adds several artifacts to the internal collection.
- */
+ /** Adds several artifacts to the internal collection. */
+ @CanIgnoreReturnValue
public Builder addArtifacts(Iterable<Artifact> artifacts) {
for (Artifact artifact : artifacts) {
addArtifact(artifact);
@@ -763,9 +763,8 @@
return this;
}
- /**
- * Adds a nested set to the internal collection.
- */
+ /** Adds a nested set to the internal collection. */
+ @CanIgnoreReturnValue
public Builder addTransitiveArtifacts(NestedSet<Artifact> artifacts) {
artifactsBuilder.addTransitive(artifacts);
return this;
@@ -778,6 +777,7 @@
* artifacts will not have conflicting root relative paths, or the wrong artifact will end up in
* the runfiles tree.
*/
+ @CanIgnoreReturnValue
public Builder addTransitiveArtifactsWrappedInStableOrder(NestedSet<Artifact> artifacts) {
NestedSet<Artifact> wrappedArtifacts =
NestedSetBuilder.<Artifact>stableOrder().addTransitive(artifacts).build();
@@ -785,15 +785,15 @@
return this;
}
- /**
- * Adds a symlink.
- */
+ /** Adds a symlink. */
+ @CanIgnoreReturnValue
public Builder addSymlink(PathFragment link, Artifact target) {
symlinksBuilder.add(new SymlinkEntry(link, target));
return this;
}
/** Adds several symlinks. Neither keys nor values may be null. */
+ @CanIgnoreReturnValue
public Builder addSymlinks(Map<PathFragment, Artifact> symlinks) {
for (Map.Entry<PathFragment, Artifact> symlink : symlinks.entrySet()) {
symlinksBuilder.add(new SymlinkEntry(symlink.getKey(), symlink.getValue()));
@@ -801,23 +801,22 @@
return this;
}
- /**
- * Adds several symlinks as a NestedSet.
- */
+ /** Adds several symlinks as a NestedSet. */
+ @CanIgnoreReturnValue
public Builder addSymlinks(NestedSet<SymlinkEntry> symlinks) {
symlinksBuilder.addTransitive(symlinks);
return this;
}
- /**
- * Adds a root symlink.
- */
+ /** Adds a root symlink. */
+ @CanIgnoreReturnValue
public Builder addRootSymlink(PathFragment link, Artifact target) {
rootSymlinksBuilder.add(new SymlinkEntry(link, target));
return this;
}
/** Adds several root symlinks. Neither keys nor values may be null. */
+ @CanIgnoreReturnValue
public Builder addRootSymlinks(Map<PathFragment, Artifact> symlinks) {
for (Map.Entry<PathFragment, Artifact> symlink : symlinks.entrySet()) {
rootSymlinksBuilder.add(new SymlinkEntry(symlink.getKey(), symlink.getValue()));
@@ -825,9 +824,8 @@
return this;
}
- /**
- * Adds several root symlinks as a NestedSet.
- */
+ /** Adds several root symlinks as a NestedSet. */
+ @CanIgnoreReturnValue
public Builder addRootSymlinks(NestedSet<SymlinkEntry> symlinks) {
rootSymlinksBuilder.addTransitive(symlinks);
return this;
@@ -836,6 +834,7 @@
* Specify a function that can create additional manifest entries based on the input entries,
* see {@link EmptyFilesSupplier} for more details.
*/
+ @CanIgnoreReturnValue
public Builder setEmptyFilesSupplier(EmptyFilesSupplier supplier) {
emptyFilesSupplier = Preconditions.checkNotNull(supplier);
return this;
@@ -846,6 +845,7 @@
*
* @param runfilesSupport the runfiles support to be merged in
*/
+ @CanIgnoreReturnValue
public Builder merge(@Nullable RunfilesSupport runfilesSupport) {
if (runfilesSupport == null) {
return this;
@@ -860,6 +860,7 @@
}
/** Add the other {@link Runfiles} object transitively. */
+ @CanIgnoreReturnValue
private Builder merge(Runfiles runfiles, boolean includeArtifacts) {
// Propagate the most strict conflict checking from merged-in runfiles
if (runfiles.conflictPolicy.compareTo(conflictPolicy) > 0) {
@@ -890,11 +891,12 @@
}
/**
- * Adds the runfiles for a particular target and visits the transitive closure of "srcs",
- * "deps" and "data", collecting all of their respective runfiles.
+ * Adds the runfiles for a particular target and visits the transitive closure of "srcs", "deps"
+ * and "data", collecting all of their respective runfiles.
*/
- public Builder addRunfiles(RuleContext ruleContext,
- Function<TransitiveInfoCollection, Runfiles> mapping) {
+ @CanIgnoreReturnValue
+ public Builder addRunfiles(
+ RuleContext ruleContext, Function<TransitiveInfoCollection, Runfiles> mapping) {
Preconditions.checkNotNull(mapping);
Preconditions.checkNotNull(ruleContext);
addDataDeps(ruleContext);
@@ -907,8 +909,9 @@
*
* <p>Dependencies in {@code srcs} and {@code deps} are considered.
*/
- public Builder add(RuleContext ruleContext,
- Function<TransitiveInfoCollection, Runfiles> mapping) {
+ @CanIgnoreReturnValue
+ public Builder add(
+ RuleContext ruleContext, Function<TransitiveInfoCollection, Runfiles> mapping) {
Preconditions.checkNotNull(ruleContext);
Preconditions.checkNotNull(mapping);
for (TransitiveInfoCollection dep : getNonDataDeps(ruleContext)) {
@@ -921,26 +924,26 @@
return this;
}
- /**
- * Collects runfiles from data dependencies of a target.
- */
+ /** Collects runfiles from data dependencies of a target. */
+ @CanIgnoreReturnValue
public Builder addDataDeps(RuleContext ruleContext) {
addTargets(getPrerequisites(ruleContext, "data"), RunfilesProvider.DATA_RUNFILES);
return this;
}
- /**
- * Collects runfiles from "srcs" and "deps" of a target.
- */
- public Builder addNonDataDeps(RuleContext ruleContext,
- Function<TransitiveInfoCollection, Runfiles> mapping) {
+ /** Collects runfiles from "srcs" and "deps" of a target. */
+ @CanIgnoreReturnValue
+ public Builder addNonDataDeps(
+ RuleContext ruleContext, Function<TransitiveInfoCollection, Runfiles> mapping) {
for (TransitiveInfoCollection target : getNonDataDeps(ruleContext)) {
addTargetExceptFileTargets(target, mapping);
}
return this;
}
- public Builder addTargets(Iterable<? extends TransitiveInfoCollection> targets,
+ @CanIgnoreReturnValue
+ public Builder addTargets(
+ Iterable<? extends TransitiveInfoCollection> targets,
Function<TransitiveInfoCollection, Runfiles> mapping) {
for (TransitiveInfoCollection target : targets) {
addTarget(target, mapping);
@@ -953,8 +956,9 @@
return addTargetIncludingFileTargets(target, mapping);
}
- private Builder addTargetExceptFileTargets(TransitiveInfoCollection target,
- Function<TransitiveInfoCollection, Runfiles> mapping) {
+ @CanIgnoreReturnValue
+ private Builder addTargetExceptFileTargets(
+ TransitiveInfoCollection target, Function<TransitiveInfoCollection, Runfiles> mapping) {
Runfiles runfiles = mapping.apply(target);
if (runfiles != null) {
merge(runfiles);
@@ -987,6 +991,7 @@
}
/** Adds symlinks to given artifacts at their exec paths. */
+ @CanIgnoreReturnValue
public Builder addSymlinksToArtifacts(Iterable<Artifact> artifacts) {
for (Artifact artifact : artifacts) {
addSymlink(artifact.getExecPath(), artifact);
@@ -999,6 +1004,7 @@
* method exists solely to support the unfortunate legacy behavior of some rules; new uses
* should not be added.
*/
+ @CanIgnoreReturnValue
public Builder addLegacyExtraMiddleman(Artifact middleman) {
Preconditions.checkArgument(middleman.isMiddlemanArtifact(), middleman);
extraMiddlemenBuilder.add(middleman);
@@ -1053,6 +1059,7 @@
* @return this object, in the fluent style
* @throws EvalException if a nested set in the Runfiles object exceeds the depth limit
*/
+ @CanIgnoreReturnValue
private Runfiles verifyNestedSetDepthLimit(StarlarkSemantics semantics) throws EvalException {
int limit = semantics.get(BuildLanguageOptions.NESTED_SET_DEPTH_LIMIT);
verifyNestedSetDepthLimitHelper(artifacts, "artifacts", limit);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ToolchainCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/ToolchainCollection.java
index 0465daf..572d077 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ToolchainCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ToolchainCollection.java
@@ -22,6 +22,7 @@
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.ExecGroup;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.HashMap;
import java.util.Map;
@@ -95,6 +96,7 @@
toolchainContexts.put(execGroup, context);
}
+ @CanIgnoreReturnValue
public Builder<T> addDefaultContext(T context) {
addContext(ExecGroup.DEFAULT_EXEC_GROUP_NAME, context);
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java
index 5b241d8..4ac5689 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java
@@ -17,6 +17,7 @@
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.Provider;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Arrays;
import java.util.LinkedHashMap;
import javax.annotation.Nullable;
@@ -43,7 +44,7 @@
return providers.containsKey(key);
}
-
+ @CanIgnoreReturnValue
public <T extends TransitiveInfoProvider> TransitiveInfoProviderMapBuilder put(
Class<? extends T> providerClass, T provider) {
Preconditions.checkNotNull(providerClass);
@@ -58,6 +59,7 @@
return this;
}
+ @CanIgnoreReturnValue
public TransitiveInfoProviderMapBuilder put(Info classObject) {
Preconditions.checkNotNull(classObject);
// TODO(bazel-team): VisibilityProvider should be migrated to Info to avoid the
@@ -73,6 +75,7 @@
return this;
}
+ @CanIgnoreReturnValue
public TransitiveInfoProviderMapBuilder put(String legacyKey, Object classObject) {
Preconditions.checkNotNull(legacyKey);
Preconditions.checkNotNull(classObject);
@@ -89,6 +92,7 @@
return addAll(Arrays.asList(providers));
}
+ @CanIgnoreReturnValue
public TransitiveInfoProviderMapBuilder addAll(TransitiveInfoProviderMap other) {
for (int i = 0; i < other.getProviderCount(); ++i) {
providers.put(other.getProviderKeyAt(i), other.getProviderInstanceAt(i));
@@ -96,6 +100,7 @@
return this;
}
+ @CanIgnoreReturnValue
public TransitiveInfoProviderMapBuilder addAll(Iterable<TransitiveInfoProvider> providers) {
for (TransitiveInfoProvider provider : providers) {
add(provider);
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 7ee86ab..f80e0ad 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -116,6 +116,7 @@
import com.google.devtools.common.options.OptionsParsingResult;
import com.google.devtools.common.options.OptionsProvider;
import com.google.devtools.common.options.TriState;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
@@ -1573,46 +1574,55 @@
return runtime;
}
+ @CanIgnoreReturnValue
public Builder setProductName(String productName) {
this.productName = productName;
return this;
}
+ @CanIgnoreReturnValue
public Builder setFileSystem(FileSystem fileSystem) {
this.fileSystem = fileSystem;
return this;
}
+ @CanIgnoreReturnValue
public Builder setServerDirectories(ServerDirectories serverDirectories) {
this.serverDirectories = serverDirectories;
return this;
}
+ @CanIgnoreReturnValue
public Builder setClock(Clock clock) {
this.clock = clock;
return this;
}
+ @CanIgnoreReturnValue
public Builder setAbruptShutdownHandler(Runnable handler) {
this.abruptShutdownHandler = handler;
return this;
}
+ @CanIgnoreReturnValue
public Builder setStartupOptionsProvider(OptionsParsingResult startupOptionsProvider) {
this.startupOptionsProvider = startupOptionsProvider;
return this;
}
+ @CanIgnoreReturnValue
public Builder addBlazeModule(BlazeModule blazeModule) {
blazeModules.add(blazeModule);
return this;
}
+ @CanIgnoreReturnValue
public Builder setInstanceId(UUID id) {
instanceId = id;
return this;
}
+ @CanIgnoreReturnValue
@VisibleForTesting
public Builder setEventBusExceptionHandler(
SubscriberExceptionHandler eventBusExceptionHandler) {
@@ -1620,12 +1630,14 @@
return this;
}
+ @CanIgnoreReturnValue
@VisibleForTesting
public Builder setBugReporter(BugReporter bugReporter) {
this.bugReporter = bugReporter;
return this;
}
+ @CanIgnoreReturnValue
public Builder setActionKeyContext(ActionKeyContext actionKeyContext) {
this.actionKeyContext = actionKeyContext;
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventArtifactUploaderFactoryMap.java b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventArtifactUploaderFactoryMap.java
index fc414c6..d9976f5 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventArtifactUploaderFactoryMap.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventArtifactUploaderFactoryMap.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.runtime;
import com.google.common.collect.ImmutableMap;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.SortedMap;
import java.util.TreeMap;
import javax.annotation.Nullable;
@@ -47,6 +48,7 @@
public Builder() {}
+ @CanIgnoreReturnValue
public Builder add(String name, BuildEventArtifactUploaderFactory uploader) {
uploaders.put(name, uploader);
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java
index 79224cd..f42291d 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java
@@ -65,6 +65,7 @@
import com.google.devtools.build.lib.pkgcache.TargetParsingCompleteEvent;
import com.google.devtools.build.lib.runtime.CountingArtifactGroupNamer.LatchedGroupName;
import com.google.devtools.build.lib.util.Pair;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import com.google.errorprone.annotations.concurrent.GuardedBy;
import java.util.ArrayList;
import java.util.Collection;
@@ -846,26 +847,31 @@
private CountingArtifactGroupNamer artifactGroupNamer;
private String oomMessage;
+ @CanIgnoreReturnValue
public Builder buildEventTransports(Set<BuildEventTransport> value) {
this.buildEventTransports = value;
return this;
}
+ @CanIgnoreReturnValue
public Builder besStreamOptions(BuildEventStreamOptions value) {
this.besStreamOptions = value;
return this;
}
+ @CanIgnoreReturnValue
public Builder publishTargetSummaries(boolean publishTargetSummaries) {
this.publishTargetSummaries = publishTargetSummaries;
return this;
}
+ @CanIgnoreReturnValue
public Builder artifactGroupNamer(CountingArtifactGroupNamer value) {
this.artifactGroupNamer = value;
return this;
}
+ @CanIgnoreReturnValue
public Builder oomMessage(String oomMessage) {
this.oomMessage = oomMessage;
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ProcessWrapper.java b/src/main/java/com/google/devtools/build/lib/runtime/ProcessWrapper.java
index adab024..3e9c87a 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ProcessWrapper.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ProcessWrapper.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.OsUtils;
import com.google.devtools.build.lib.vfs.Path;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.time.Duration;
import java.util.List;
import java.util.Map;
@@ -103,30 +104,35 @@
}
/** Sets the path to use for redirecting stdout, if any. */
+ @CanIgnoreReturnValue
public CommandLineBuilder setStdoutPath(Path stdoutPath) {
this.stdoutPath = stdoutPath;
return this;
}
/** Sets the path to use for redirecting stderr, if any. */
+ @CanIgnoreReturnValue
public CommandLineBuilder setStderrPath(Path stderrPath) {
this.stderrPath = stderrPath;
return this;
}
/** Sets the timeout for the command run using the process-wrapper tool. */
+ @CanIgnoreReturnValue
public CommandLineBuilder setTimeout(Duration timeout) {
this.timeout = timeout;
return this;
}
/** Sets the path for writing execution statistics (e.g. resource usage). */
+ @CanIgnoreReturnValue
public CommandLineBuilder setStatisticsPath(Path statisticsPath) {
this.statisticsPath = statisticsPath;
return this;
}
/** Incorporates settings from a spawn's execution info. */
+ @CanIgnoreReturnValue
public CommandLineBuilder addExecutionInfo(Map<String, String> executionInfo) {
if (executionInfo.containsKey(ExecutionRequirements.GRACEFUL_TERMINATION)) {
gracefulSigterm = true;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java b/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java
index b7982f8..bba51b1 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java
@@ -23,6 +23,7 @@
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
import com.google.devtools.build.lib.query2.query.output.OutputFormatter;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.function.Supplier;
/**
@@ -99,6 +100,7 @@
* police the same options, so it's probably a good idea to not have too many modules that call
* this.
*/
+ @CanIgnoreReturnValue
public ServerBuilder addInvocationPolicy(InvocationPolicy policy) {
invocationPolicyBuilder.mergeFrom(Preconditions.checkNotNull(policy));
return this;
@@ -110,6 +112,7 @@
* only one factory per server is allowed. If none is set, the server uses the default
* implementation.
*/
+ @CanIgnoreReturnValue
public ServerBuilder setQueryEnvironmentFactory(QueryEnvironmentFactory queryEnvironmentFactory) {
Preconditions.checkState(
this.queryEnvironmentFactory == null,
@@ -124,12 +127,14 @@
* Adds the given command to the server. This overload only exists to avoid array object creation
* in the common case.
*/
+ @CanIgnoreReturnValue
public ServerBuilder addCommands(BlazeCommand command) {
this.commands.add(Preconditions.checkNotNull(command));
return this;
}
/** Adds the given commands to the server. */
+ @CanIgnoreReturnValue
public ServerBuilder addCommands(BlazeCommand... commands) {
this.commands.add(commands);
return this;
@@ -140,6 +145,7 @@
* the same name to the same builder, regardless of whether that happens within the same module or
* across modules.
*/
+ @CanIgnoreReturnValue
public ServerBuilder addInfoItems(InfoItem... infoItems) {
for (InfoItem item : infoItems) {
this.infoItems.put(item.getName(), item);
@@ -147,38 +153,45 @@
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder addQueryFunctions(QueryFunction... functions) {
this.queryFunctions.add(functions);
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder addQueryOutputFormatters(OutputFormatter... formatters) {
this.queryOutputFormatters.add(formatters);
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder addQueryOutputFormatters(Iterable<OutputFormatter> formatters) {
this.queryOutputFormatters.addAll(formatters);
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder addEnvironmentExtension(PackageFactory.EnvironmentExtension extension) {
this.environmentExtensions.add(extension);
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder addBuildEventArtifactUploaderFactory(
BuildEventArtifactUploaderFactory uploaderFactory, String name) {
buildEventArtifactUploaderFactories.add(name, uploaderFactory);
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder setRepositoryRemoteExecutorFactory(
RepositoryRemoteExecutorFactory repositoryRemoteExecutorFactory) {
this.repositoryRemoteExecutorFactory = repositoryRemoteExecutorFactory;
return this;
}
+ @CanIgnoreReturnValue
public ServerBuilder setDownloaderSupplier(Supplier<Downloader> downloaderSupplier) {
this.downloaderSupplier = downloaderSupplier;
return this;
@@ -188,6 +201,7 @@
* Register a provider of authentication headers that blaze modules can use. See {@link
* AuthHeadersProvider} for more details.
*/
+ @CanIgnoreReturnValue
public ServerBuilder addAuthHeadersProvider(
String name, AuthHeadersProvider authHeadersProvider) {
authHeadersProvidersMap.put(name, authHeadersProvider);
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java b/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java
index d567954..2ddd38e 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/TestSummary.java
@@ -41,6 +41,7 @@
import com.google.devtools.build.lib.view.test.TestStatus.BlazeTestStatus;
import com.google.devtools.build.lib.view.test.TestStatus.FailedTestCasesStatus;
import com.google.devtools.build.lib.view.test.TestStatus.TestCase;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import com.google.protobuf.util.Durations;
import com.google.protobuf.util.Timestamps;
import java.util.ArrayList;
@@ -122,54 +123,63 @@
checkMutation();
}
+ @CanIgnoreReturnValue
public Builder setConfiguration(BuildConfigurationValue configuration) {
checkMutation(configuration);
summary.configuration = checkNotNull(configuration, summary);
return this;
}
+ @CanIgnoreReturnValue
public Builder setStatus(BlazeTestStatus status) {
checkMutation(status);
summary.status = status;
return this;
}
+ @CanIgnoreReturnValue
public Builder setSkipped(boolean skipped) {
checkMutation(skipped);
summary.skipped = skipped;
return this;
}
+ @CanIgnoreReturnValue
public Builder addCoverageFiles(List<Path> coverageFiles) {
checkMutation(coverageFiles);
summary.coverageFiles.addAll(coverageFiles);
return this;
}
+ @CanIgnoreReturnValue
public Builder addPassedLogs(List<Path> passedLogs) {
checkMutation(passedLogs);
summary.passedLogs.addAll(passedLogs);
return this;
}
+ @CanIgnoreReturnValue
public Builder addPassedLog(Path passedLog) {
checkMutation(passedLog);
summary.passedLogs.add(passedLog);
return this;
}
+ @CanIgnoreReturnValue
public Builder addFailedLogs(List<Path> failedLogs) {
checkMutation(failedLogs);
summary.failedLogs.addAll(failedLogs);
return this;
}
+ @CanIgnoreReturnValue
public Builder addFailedLog(Path failedLog) {
checkMutation(failedLog);
summary.failedLogs.add(failedLog);
return this;
}
+ @CanIgnoreReturnValue
public Builder collectTestCases(@Nullable TestCase testCase) {
// Maintain the invariant: failedTestCases + totalUnknownTestCases <= totalTestCases
if (testCase == null) {
@@ -211,6 +221,7 @@
return 1;
}
+ @CanIgnoreReturnValue
public Builder addFailedTestCases(List<TestCase> testCases, FailedTestCasesStatus status) {
checkMutation(status);
checkMutation(testCases);
@@ -240,12 +251,14 @@
return this;
}
+ @CanIgnoreReturnValue
public Builder addTestTimes(List<Long> testTimes) {
checkMutation(testTimes);
summary.testTimes.addAll(testTimes);
return this;
}
+ @CanIgnoreReturnValue
public Builder mergeTiming(long startTimeMillis, long runDurationMillis) {
checkMutation();
summary.firstStartTimeMillis = Math.min(summary.firstStartTimeMillis, startTimeMillis);
@@ -255,12 +268,14 @@
return this;
}
+ @CanIgnoreReturnValue
public Builder addWarnings(List<String> warnings) {
checkMutation(warnings);
summary.warnings.addAll(warnings);
return this;
}
+ @CanIgnoreReturnValue
public Builder setActionRan(boolean actionRan) {
checkMutation();
summary.actionRan = actionRan;
@@ -273,30 +288,35 @@
* @param numCached number of results cached locally or remotely
* @return this Builder
*/
+ @CanIgnoreReturnValue
public Builder setNumCached(int numCached) {
checkMutation();
summary.numCached = numCached;
return this;
}
+ @CanIgnoreReturnValue
public Builder setNumLocalActionCached(int numLocalActionCached) {
checkMutation();
summary.numLocalActionCached = numLocalActionCached;
return this;
}
+ @CanIgnoreReturnValue
public Builder setRanRemotely(boolean ranRemotely) {
checkMutation();
summary.ranRemotely = ranRemotely;
return this;
}
+ @CanIgnoreReturnValue
public Builder setWasUnreportedWrongSize(boolean wasUnreportedWrongSize) {
checkMutation();
summary.wasUnreportedWrongSize = wasUnreportedWrongSize;
return this;
}
+ @CanIgnoreReturnValue
public Builder mergeSystemFailure(@Nullable DetailedExitCode systemFailure) {
checkMutation();
summary.systemFailure =
@@ -317,6 +337,7 @@
}
/** Records new attempts for the given shard of the target. */
+ @CanIgnoreReturnValue
public Builder addShardAttempts(int shardNumber, int newAtttempts) {
checkMutation();
summary.shardAttempts[shardNumber] += newAtttempts;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
index 887e9ac..e1a6244 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/WorkspaceBuilder.java
@@ -33,6 +33,7 @@
import com.google.devtools.build.lib.vfs.SyscallCache;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.Map;
import javax.annotation.Nullable;
@@ -134,6 +135,7 @@
* Sets a factory for creating {@link SkyframeExecutor} objects. Note that only one factory per
* workspace is allowed.
*/
+ @CanIgnoreReturnValue
public WorkspaceBuilder setSkyframeExecutorFactory(
SkyframeExecutorFactory skyframeExecutorFactory) {
Preconditions.checkState(this.skyframeExecutorFactory == null,
@@ -147,6 +149,7 @@
* Sets the workspace status action factory contributed by this module. Only one factory per
* workspace is allowed.
*/
+ @CanIgnoreReturnValue
public WorkspaceBuilder setWorkspaceStatusActionFactory(
WorkspaceStatusAction.Factory workspaceStatusActionFactory) {
Preconditions.checkState(this.workspaceStatusActionFactory == null,
@@ -156,6 +159,7 @@
return this;
}
+ @CanIgnoreReturnValue
public WorkspaceBuilder setAllocationTracker(AllocationTracker allocationTracker) {
Preconditions.checkState(
this.allocationTracker == null, "At most one allocation tracker can be set.");
@@ -163,6 +167,7 @@
return this;
}
+ @CanIgnoreReturnValue
public WorkspaceBuilder setPerCommandSyscallCache(SyscallCache perCommandSyscallCache) {
Preconditions.checkState(
this.perCommandSyscallCache == null,
@@ -176,15 +181,17 @@
/**
* Add a {@link DiffAwareness} factory. These will be used to determine which files, if any,
* changed between Blaze commands. Note that these factories are attempted in the order in which
- * they are added to this class, so order matters - in order to guarantee a specific order, only
- * a single module should add such factories.
+ * they are added to this class, so order matters - in order to guarantee a specific order, only a
+ * single module should add such factories.
*/
+ @CanIgnoreReturnValue
public WorkspaceBuilder addDiffAwarenessFactory(DiffAwareness.Factory factory) {
this.diffAwarenessFactories.add(Preconditions.checkNotNull(factory));
return this;
}
/** Add an "extra" SkyFunction for SkyValues. */
+ @CanIgnoreReturnValue
public WorkspaceBuilder addSkyFunction(SkyFunctionName name, SkyFunction skyFunction) {
Preconditions.checkNotNull(name);
Preconditions.checkNotNull(skyFunction);
@@ -193,17 +200,20 @@
}
/** Add "extra" SkyFunctions for SkyValues. */
+ @CanIgnoreReturnValue
public WorkspaceBuilder addSkyFunctions(Map<SkyFunctionName, SkyFunction> skyFunctions) {
this.skyFunctions.putAll(Preconditions.checkNotNull(skyFunctions));
return this;
}
+ @CanIgnoreReturnValue
public WorkspaceBuilder setSkyframeExecutorRepositoryHelpersHolder(
SkyframeExecutorRepositoryHelpersHolder skyframeExecutorRepositoryHelpersHolder) {
this.skyframeExecutorRepositoryHelpersHolder = skyframeExecutorRepositoryHelpersHolder;
return this;
}
+ @CanIgnoreReturnValue
public WorkspaceBuilder setSkyKeyStateReceiver(
SkyframeExecutor.SkyKeyStateReceiver skyKeyStateReceiver) {
Preconditions.checkState(
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/CentralDirectory.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/CentralDirectory.java
index fa5d1f6..b104369 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/CentralDirectory.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/CentralDirectory.java
@@ -16,6 +16,7 @@
import static com.google.devtools.build.android.ziputils.DirectoryEntry.CENOFF;
import com.google.common.base.Preconditions;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
@@ -98,6 +99,7 @@
* @return this central directory view
* @throws IllegalStateException if the file offset is not set prior to parsing
*/
+ @CanIgnoreReturnValue
public CentralDirectory parse() throws IllegalStateException {
Preconditions.checkState(fileOffset != -1, "File offset not set prior to parsing");
count = 0;
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/DataDescriptor.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/DataDescriptor.java
index e35a16c..1a8075c 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/DataDescriptor.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/DataDescriptor.java
@@ -15,6 +15,7 @@
import static java.nio.ByteOrder.LITTLE_ENDIAN;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.nio.ByteBuffer;
/**
@@ -84,6 +85,7 @@
return view;
}
+ @CanIgnoreReturnValue
private DataDescriptor init() {
buffer.putInt(0, SIGNATURE);
hasMarker = true;
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/DirectoryEntry.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/DirectoryEntry.java
index b6528b3..f177ce0 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/DirectoryEntry.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/DirectoryEntry.java
@@ -16,6 +16,7 @@
import static java.nio.ByteOrder.LITTLE_ENDIAN;
import static java.nio.charset.StandardCharsets.UTF_8;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.nio.ByteBuffer;
/**
@@ -120,6 +121,7 @@
return view;
}
+ @CanIgnoreReturnValue
private DirectoryEntry init(byte[] name, byte[] extra, byte[] comment, int size) {
buffer.putInt(0, SIGNATURE);
set(CENNAM, name.length);
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/EndOfCentralDirectory.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/EndOfCentralDirectory.java
index 20d9021..3ee620e 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/EndOfCentralDirectory.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/EndOfCentralDirectory.java
@@ -16,6 +16,7 @@
import static java.nio.ByteOrder.LITTLE_ENDIAN;
import static java.nio.charset.StandardCharsets.UTF_8;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.nio.ByteBuffer;
/**
@@ -83,6 +84,7 @@
return view;
}
+ @CanIgnoreReturnValue
private EndOfCentralDirectory init(byte[] comment) {
buffer.putInt(0, SIGNATURE);
set(ENDCOM, comment.length);
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/LocalFileHeader.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/LocalFileHeader.java
index 5319389..473b5a0 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/LocalFileHeader.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/LocalFileHeader.java
@@ -16,6 +16,7 @@
import static java.nio.ByteOrder.LITTLE_ENDIAN;
import static java.nio.charset.StandardCharsets.UTF_8;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.nio.ByteBuffer;
/**
@@ -112,6 +113,7 @@
return view;
}
+ @CanIgnoreReturnValue
private LocalFileHeader init(byte[] name, byte[] extra, int size) {
buffer.putInt(0, SIGNATURE);
set(LOCNAM, name.length);
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/SplitZip.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/SplitZip.java
index 0528175..a3b33a0 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/SplitZip.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/SplitZip.java
@@ -28,6 +28,7 @@
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Sets;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -81,17 +82,20 @@
}
/**
- * Configures a resource file. By default, resources are output in the initial shard.
- * If a resource file is specified, resources are written to this instead.
+ * Configures a resource file. By default, resources are output in the initial shard. If a
+ * resource file is specified, resources are written to this instead.
+ *
* @param resourceFile in not {@code null}, the name of a file in which to output resources.
* @return this object.
*/
+ @CanIgnoreReturnValue
public SplitZip setResourceFile(String resourceFile) {
this.resourceFile = resourceFile;
return this;
}
// Package private for testing with mock file
+ @CanIgnoreReturnValue
SplitZip setResourceFile(ZipOut resOut) {
resourceOut = resOut;
return this;
@@ -112,12 +116,14 @@
* @param clFile path of class file list.
* @return this object
*/
+ @CanIgnoreReturnValue
public SplitZip setMainClassListFile(String clFile) {
filterFile = clFile;
return this;
}
// Package private for testing with mock file
+ @CanIgnoreReturnValue
SplitZip setMainClassListStreamForTesting(InputStream clInputStream) {
filterInputStream = clInputStream;
return this;
@@ -137,6 +143,7 @@
* @param flag set to {@code true} to turn on verbose mode.
* @return this object
*/
+ @CanIgnoreReturnValue
public SplitZip setVerbose(boolean flag) {
verbose = flag;
return this;
@@ -155,6 +162,7 @@
*
* @param flag {@code true} will split .dex files; {@code false} treats them as resources
*/
+ @CanIgnoreReturnValue
public SplitZip setSplitDexedClasses(boolean flag) {
splitDexFiles = flag;
return this;
@@ -167,6 +175,7 @@
* @param date modified date and time to set for entries in output.
* @return this object.
*/
+ @CanIgnoreReturnValue
public SplitZip setEntryDate(Date date) {
this.date = date;
this.dosTime = date == null ? null : new DosTime(date);
@@ -178,6 +187,7 @@
*
* @return this object.
*/
+ @CanIgnoreReturnValue
public SplitZip useDefaultEntryDate() {
this.date = DosTime.DOS_EPOCHISH;
this.dosTime = DosTime.EPOCHISH;
@@ -198,6 +208,7 @@
* @return this object
* @throws java.io.IOException
*/
+ @CanIgnoreReturnValue
public SplitZip addInputs(Iterable<String> inputs) throws IOException {
for (String i : inputs) {
addInput(i);
@@ -212,6 +223,7 @@
* @return this object
* @throws java.io.IOException
*/
+ @CanIgnoreReturnValue
public SplitZip addInput(String filename) throws IOException {
if (filename != null) {
inputs.add(new ZipIn(new FileInputStream(filename).getChannel(), filename));
@@ -220,6 +232,7 @@
}
// Package private, for testing using mock file system.
+ @CanIgnoreReturnValue
SplitZip addInput(ZipIn in) throws IOException {
Preconditions.checkNotNull(in);
inputs.add(in);
@@ -233,6 +246,7 @@
* @return this object
* @throws java.io.IOException
*/
+ @CanIgnoreReturnValue
public SplitZip addOutputs(Iterable<String> outputs) throws IOException {
for (String o : outputs) {
addOutput(o);
@@ -247,6 +261,7 @@
* @return this object
* @throws java.io.IOException
*/
+ @CanIgnoreReturnValue
public SplitZip addOutput(String output) throws IOException {
Preconditions.checkNotNull(output);
outputs.add(new ZipOut(new FileOutputStream(output, false).getChannel(), output));
@@ -254,6 +269,7 @@
}
// Package private for testing with mock file
+ @CanIgnoreReturnValue
SplitZip addOutput(ZipOut output) throws IOException {
Preconditions.checkNotNull(output);
outputs.add(output);
@@ -261,10 +277,11 @@
}
/**
- * Set a predicate to only include files with matching filenames in any of the outputs. <b>Other
+ * Set a predicate to only include files with matching filenames in any of the outputs. <b>Other
* zip entries are dropped</b>, regardless of whether they're classes or resources and regardless
* of whether they're listed in {@link #setMainClassListFile}.
*/
+ @CanIgnoreReturnValue
public SplitZip setInputFilter(Predicate<String> inputFilter) {
this.inputFilter = Preconditions.checkNotNull(inputFilter);
return this;
@@ -277,6 +294,7 @@
* @return this object
* @throws java.io.IOException
*/
+ @CanIgnoreReturnValue
public SplitZip run() throws IOException {
verbose("SplitZip: Splitting in: " + outputs.size());
verbose("SplitZip: with filter: " + filterFile);
diff --git a/src/tools/android/java/com/google/devtools/build/android/ziputils/ZipIn.java b/src/tools/android/java/com/google/devtools/build/android/ziputils/ZipIn.java
index 078a5c5..be3f04f 100644
--- a/src/tools/android/java/com/google/devtools/build/android/ziputils/ZipIn.java
+++ b/src/tools/android/java/com/google/devtools/build/android/ziputils/ZipIn.java
@@ -22,6 +22,7 @@
import static com.google.devtools.build.android.ziputils.EndOfCentralDirectory.ENDSUB;
import com.google.common.primitives.UnsignedInts;
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@@ -565,8 +566,10 @@
/**
* Sets the header of this zip entry.
+ *
* @return this object.
*/
+ @CanIgnoreReturnValue
public ZipEntry withHeader(LocalFileHeader header) {
this.header = header;
return this;
@@ -581,8 +584,10 @@
/**
* Sets the data descriptor of this zip entry.
+ *
* @return this object.
*/
+ @CanIgnoreReturnValue
public ZipEntry withDescriptor(DataDescriptor descriptor) {
this.descriptor = descriptor;
return this;
@@ -597,8 +602,10 @@
/**
* Sets the byte buffer providing access to the raw content of this zip entry.
+ *
* @return this object
*/
+ @CanIgnoreReturnValue
public ZipEntry withContent(ByteBuffer content) {
this.content = content;
return this;
@@ -613,8 +620,10 @@
/**
* Sets the central directory entry for this zip entry.
+ *
* @return this object.
*/
+ @CanIgnoreReturnValue
public ZipEntry withEntry(DirectoryEntry entry) {
this.entry = entry;
return this;
@@ -629,8 +638,10 @@
/**
* Sets the status code for this zip entry.
+ *
* @return this object.
*/
+ @CanIgnoreReturnValue
public ZipEntry withCode(Status code) {
this.code = code;
return this;