Add @Nullable annotations where they were missing.
PiperOrigin-RevId: 459211611
Change-Id: I9b281b82c8b3356b3ec735752d9da93239d90105
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
index 23d0a70..60a80e4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
@@ -167,6 +167,7 @@
}
}
+ @Nullable
private SkyValue computeInternal(SkyKey skyKey, Environment env)
throws ActionExecutionFunctionException, InterruptedException {
ActionLookupData actionLookupData = (ActionLookupData) skyKey.argument();
@@ -631,6 +632,7 @@
this.env = env;
}
+ @Nullable
@Override
public Map<PathFragment, Root> findPackageRootsForFiles(Iterable<PathFragment> execPaths)
throws PackageRootException, InterruptedException {
@@ -691,6 +693,7 @@
}
}
+ @Nullable
private ActionExecutionValue checkCacheAndExecuteIfNeeded(
Action action,
InputDiscoveryState state,
@@ -974,6 +977,7 @@
return env.valuesMissing() ? DiscoveredState.VALUES_MISSING : DiscoveredState.DISCOVERED_DATA;
}
+ @Nullable
private static <E extends Exception> Object establishSkyframeDependencies(
Environment env, Action action) throws ActionExecutionException, InterruptedException {
// Before we may safely establish Skyframe dependencies, we must build all action inputs by
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
index 82c3dbc..d459173 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
@@ -79,6 +79,7 @@
this.state = Preconditions.checkNotNull(state);
}
+ @Nullable
ActionExecutionValue getResultOrDependOnFuture(
SkyFunction.Environment env,
ActionLookupData actionLookupData,
@@ -133,6 +134,7 @@
dummyFuture.set(null);
}
+ @Nullable
private ActionExecutionValue runStateMachine(SkyFunction.Environment env)
throws ActionExecutionException, InterruptedException {
ActionStepOrResult original;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java
index a55636b..f024131 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java
@@ -32,6 +32,7 @@
import com.google.devtools.build.skyframe.SkyFunction.Environment;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.Map;
+import javax.annotation.Nullable;
/** Static utilities for working with action inputs. */
final class ActionInputMapHelper {
@@ -138,6 +139,7 @@
}
}
+ @Nullable
static ImmutableList<FilesetOutputSymlink> getFilesets(
Environment env, SpecialArtifact actionInput) throws InterruptedException {
Preconditions.checkState(actionInput.isFileset(), actionInput);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java
index 5ce5967..c6820da 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunction.java
@@ -68,6 +68,7 @@
this.bugReporter = bugReporter;
}
+ @Nullable
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws ActionTemplateExpansionFunctionException, InterruptedException {
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 3668f30..f397a78 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
@@ -106,6 +106,7 @@
this.xattrProvider = xattrProvider;
}
+ @Nullable
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws ArtifactFunctionException, InterruptedException {
@@ -183,6 +184,7 @@
}
}
+ @Nullable
private static TreeArtifactValue createTreeArtifactValueFromActionKey(
ArtifactDependencies artifactDependencies, Environment env) throws InterruptedException {
// Request the list of expanded action keys from the ActionTemplate.
@@ -254,6 +256,7 @@
return tree;
}
+ @Nullable
private SkyValue createSourceValue(Artifact artifact, Environment env)
throws InterruptedException, ArtifactFunctionException {
RootedPath path = RootedPath.toRootedPath(artifact.getRoot().getRoot(), artifact.getPath());
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactNestedSetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactNestedSetFunction.java
index 7d25b82..c3ee93c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactNestedSetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactNestedSetFunction.java
@@ -34,6 +34,7 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.function.Supplier;
+import javax.annotation.Nullable;
/**
* A builder of values for {@link ArtifactNestedSetKey}.
@@ -101,6 +102,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env)
throws InterruptedException, ArtifactNestedSetFunctionException {
List<SkyKey> depKeys = getDepSkyKeys((ArtifactNestedSetKey) skyKey);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletor.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletor.java
index 1b201a2..627a4eb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectCompletor.java
@@ -108,6 +108,7 @@
}
}
+ @Nullable
@Override
public AspectCompleteEvent createSucceeded(
AspectCompletionKey skyKey,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectCreationException.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectCreationException.java
index e70a0e1..a0ff554 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectCreationException.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectCreationException.java
@@ -29,6 +29,7 @@
/** An exception indicating that there was a problem creating an aspect. */
public final class AspectCreationException extends Exception implements SaneAnalysisException {
+ @Nullable
private static ConfigurationId toId(BuildConfigurationValue config) {
return config == null ? null : config.getEventId().getConfiguration();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
index bba79c9..4d82e0b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -720,6 +720,7 @@
transitivePackagesForPackageRootResolution);
}
+ @Nullable
private static AspectValue createAliasAspect(
Environment env,
Target originalTarget,
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 bf3a65e..8b44526 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -449,6 +449,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -654,6 +655,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -1145,6 +1147,7 @@
"//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:skyframe-objects",
+ "//third_party:jsr305",
],
)
@@ -1230,6 +1233,7 @@
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ "//third_party:jsr305",
],
)
@@ -1331,6 +1335,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -1512,6 +1517,7 @@
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/java/com/google/devtools/common/options",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -1841,6 +1847,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -1876,6 +1883,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -2032,6 +2040,7 @@
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
"//src/main/protobuf:failure_details_java_proto",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -2456,6 +2465,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -2485,6 +2495,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
@@ -2808,6 +2819,7 @@
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
"//third_party:guava",
+ "//third_party:jsr305",
],
)
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java
index 796da77..731401d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java
@@ -44,6 +44,7 @@
import com.google.devtools.common.options.OptionsParsingException;
import java.util.Map;
import java.util.TreeMap;
+import javax.annotation.Nullable;
import net.starlark.java.eval.StarlarkSemantics;
/** A builder for {@link BuildConfigurationValue} instances. */
@@ -64,6 +65,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env)
throws InterruptedException, BuildConfigurationFunctionException {
WorkspaceNameValue workspaceNameValue = (WorkspaceNameValue) env
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
index f5d0ca4..126a34e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
@@ -34,6 +34,7 @@
import com.google.devtools.build.skyframe.SkyValue;
import com.google.devtools.build.skyframe.SkyframeIterableResult;
import java.util.Map;
+import javax.annotation.Nullable;
/**
* Creates a {@link BuildInfoCollectionValue}. Only depends on the unique {@link
@@ -56,6 +57,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException {
final BuildInfoKeyAndConfig keyAndConfig = (BuildInfoKeyAndConfig) skyKey.argument();
ImmutableSet<SkyKey> keysToRequest =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java
index b3a7409..9a98352 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionValue.java
@@ -88,6 +88,7 @@
return infoKey;
}
+ @Nullable
@Override
public Label getLabel() {
return null;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileFunction.java
index e451e11..8dc5c76 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BzlCompileFunction.java
@@ -30,6 +30,7 @@
import com.google.devtools.build.skyframe.SkyValue;
import java.io.IOException;
import java.util.Map;
+import javax.annotation.Nullable;
import net.starlark.java.eval.Module;
import net.starlark.java.eval.StarlarkSemantics;
import net.starlark.java.syntax.FileOptions;
@@ -68,6 +69,7 @@
}
}
+ @Nullable
static BzlCompileValue computeInline(
BzlCompileValue.Key key,
Environment env,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java
index 50eaa2d..f034db6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java
@@ -842,6 +842,7 @@
return new BzlLoadValue(module, transitiveDigest, bzlVisibility);
}
+ @Nullable
private static RepositoryMapping getRepositoryMapping(BzlLoadValue.Key key, Environment env)
throws InterruptedException {
if (key.isBuiltins() && !RepositoryDelegatorFunction.ENABLE_BZLMOD.get(env)) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index 2500d3e..ddcc8d2 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -243,6 +243,7 @@
@Nullable private StoredEventHandler storedEventHandlerFromResolveConfigurations;
}
+ @Nullable
@Override
public SkyValue compute(SkyKey key, Environment env)
throws ReportedException, UnreportedException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java
index 1401b66..f6c9cb2 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunction.java
@@ -20,6 +20,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* SkyFunction for {@link ContainingPackageLookupValue}s.
@@ -27,6 +28,7 @@
public class ContainingPackageLookupFunction implements SkyFunction {
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException {
PackageIdentifier dir = (PackageIdentifier) skyKey.argument();
PackageLookupValue pkgLookupValue =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
index 87e3d27..23ba5be 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportFunction.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* A Skyframe function to calculate the coverage report Action and Artifacts.
@@ -40,6 +41,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException {
Preconditions.checkState(
CoverageReportValue.COVERAGE_REPORT_KEY.equals(skyKey),
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingFunction.java
index a89cd48..eb01dcd 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingFunction.java
@@ -20,6 +20,7 @@
import com.google.devtools.build.skyframe.SkyFunctionException;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* A {@link SkyFunction} for {@link DirectoryListingValue}s.
@@ -27,6 +28,7 @@
public final class DirectoryListingFunction implements SkyFunction {
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env)
throws DirectoryListingFunctionException, InterruptedException {
RootedPath dirRootedPath = (RootedPath) skyKey.argument();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateFunction.java
index e2f1216..ecd1a8c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingStateFunction.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.skyframe.SkyFunctionException;
import com.google.devtools.build.skyframe.SkyKey;
import java.io.IOException;
+import javax.annotation.Nullable;
/**
* A {@link SkyFunction} for {@link DirectoryListingStateValue}s.
@@ -46,6 +47,7 @@
}
@Override
+ @Nullable
public DirectoryListingStateValue compute(SkyKey skyKey, Environment env)
throws DirectoryListingStateFunctionException, InterruptedException {
RootedPath dirRootedPath = (RootedPath) skyKey.argument();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java
index 88128b1..76414eb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java
@@ -89,6 +89,7 @@
private SymlinkResolutionState() {}
}
+ @Nullable
@Override
public FileValue compute(SkyKey skyKey, Environment env)
throws FileFunctionException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java
index 8b534e2..699753c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileStateFunction.java
@@ -24,6 +24,7 @@
import com.google.devtools.build.skyframe.SkyKey;
import java.io.IOException;
import java.util.function.Supplier;
+import javax.annotation.Nullable;
/**
* A {@link SkyFunction} for {@link FileStateValue}s.
@@ -51,6 +52,7 @@
// deciding which overload of FileStateFunctionException() to call.
@SuppressWarnings("UseMultiCatch")
@Override
+ @Nullable
public FileStateValue compute(SkyKey skyKey, Environment env)
throws FileStateFunctionException, InterruptedException {
RootedPath rootedPath = (RootedPath) skyKey.argument();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java
index b727166..8355f34 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java
@@ -37,6 +37,7 @@
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
+import javax.annotation.Nullable;
/** SkyFunction for {@link FilesetEntryValue}. */
public final class FilesetEntryFunction implements SkyFunction {
@@ -56,6 +57,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey key, Environment env)
throws FilesetEntryFunctionException, InterruptedException {
WorkspaceNameValue workspaceNameValue =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
index d140652..50ab2f9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
@@ -215,16 +215,18 @@
// Initialized lazily through a supplier because it is only used to check modified
// TreeArtifacts, which are not frequently used in builds.
Supplier<NavigableSet<PathFragment>> sortedKnownModifiedOutputFiles =
- Suppliers.memoize(new Supplier<NavigableSet<PathFragment>>() {
- @Override
- public NavigableSet<PathFragment> get() {
- if (knownModifiedOutputFiles == null) {
- return null;
- } else {
- return ImmutableSortedSet.copyOf(knownModifiedOutputFiles);
- }
- }
- });
+ Suppliers.memoize(
+ new Supplier<NavigableSet<PathFragment>>() {
+ @Nullable
+ @Override
+ public NavigableSet<PathFragment> get() {
+ if (knownModifiedOutputFiles == null) {
+ return null;
+ } else {
+ return ImmutableSortedSet.copyOf(knownModifiedOutputFiles);
+ }
+ }
+ });
boolean interrupted;
try (SilentCloseable c = Profiler.instance().profile("getDirtyActionValues.stat_files")) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
index 2720411..6e8d9ca 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/GlobFunction.java
@@ -61,6 +61,7 @@
this.regexPatternCache = new ConcurrentHashMap<>();
}
+ @Nullable
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws GlobFunctionException, InterruptedException {
@@ -404,6 +405,7 @@
* to {@code matches}, or {@code null} if no additional value is needed. The returned value should
* be opaquely passed to {@link #getSubdirMatchesFromSkyValue}.
*/
+ @Nullable
private static SkyKey getSkyKeyForSubdir(
String fileName, GlobDescriptor glob, String subdirPattern) {
if (subdirPattern == null) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java
index 7ded46b..f5cfb20 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java
@@ -29,6 +29,7 @@
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.Set;
+import javax.annotation.Nullable;
/**
* File system watcher for local filesystems. It's able to provide a list of changed files between
@@ -83,6 +84,7 @@
}
@Override
+ @Nullable
public DiffAwareness maybeCreate(Root pathEntry) {
com.google.devtools.build.lib.vfs.Path resolvedPathEntry;
try {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java
index 79fc1ff..afb76f4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java
@@ -54,6 +54,7 @@
// Implementation note: Although LocalRepositoryLookupValue.NOT_FOUND exists, it should never be
// returned from this method.
+ @Nullable
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws SkyFunctionException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
index dc17178..dec5009 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java
@@ -316,6 +316,7 @@
* @throws PackageFunctionException if there is an error computing the workspace file or adding
* its rules to the //external package.
*/
+ @Nullable
private SkyValue getExternalPackage(Environment env)
throws PackageFunctionException, InterruptedException {
StarlarkSemantics starlarkSemantics = PrecomputedValue.STARLARK_SEMANTICS.get(env);
@@ -385,6 +386,7 @@
@Nullable private LoadedPackage loadedPackage;
}
+ @Nullable
@Override
public SkyValue compute(SkyKey key, Environment env)
throws PackageFunctionException, InterruptedException {
@@ -576,6 +578,7 @@
return new PackageValue(pkg);
}
+ @Nullable
private static FileValue getBuildFileValue(Environment env, RootedPath buildFileRootedPath)
throws InterruptedException {
FileValue buildFileValue;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
index dcd8012..69e01e7 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java
@@ -80,6 +80,7 @@
private int buildFileNamePos = 0;
}
+ @Nullable
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws PackageLookupFunctionException, InterruptedException {
@@ -234,6 +235,7 @@
return fileValue;
}
+ @Nullable
private PackageLookupValue getPackageLookupValue(
Environment env,
Root packagePathEntry,
@@ -318,6 +320,7 @@
return false;
}
+ @Nullable
private PackageLookupValue computeWorkspacePackageLookupValue(Environment env)
throws InterruptedException {
RootedPath workspaceFile = externalPackageHelper.findWorkspaceFile(env);
@@ -349,6 +352,7 @@
* <p>To do this, it looks up the "external" package and finds a path mapping for the repository
* name.
*/
+ @Nullable
private PackageLookupValue computeExternalPackageLookupValue(
SkyKey skyKey, Environment env, PackageIdentifier packageIdentifier)
throws PackageLookupFunctionException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PerBuildSyscallCache.java b/src/main/java/com/google/devtools/build/lib/skyframe/PerBuildSyscallCache.java
index a9da72c..52d71cf 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PerBuildSyscallCache.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PerBuildSyscallCache.java
@@ -118,6 +118,7 @@
return (Collection<Dirent>) result; // unchecked cast
}
+ @Nullable
@Override
public FileStatus statIfFound(Path path, Symlinks symlinks) throws IOException {
// Try to load a Symlinks.NOFOLLOW result first. Symlinks are rare and this enables sharing the
@@ -137,6 +138,7 @@
return (status == NO_STATUS) ? null : status;
}
+ @Nullable
@Override
@SuppressWarnings("unchecked")
public DirentTypeWithSkip getType(Path path, Symlinks symlinks) throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java
index f1ae109..a999c00 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java
@@ -55,6 +55,7 @@
import java.util.Map;
import java.util.Objects;
import java.util.Set;
+import javax.annotation.Nullable;
/**
* Prepares for analysis - creates the top-level configurations and evaluates the transitions needed
@@ -68,6 +69,7 @@
}
@Override
+ @Nullable
public PrepareAnalysisPhaseValue compute(SkyKey key, Environment env)
throws InterruptedException, PrepareAnalysisPhaseFunctionException {
PrepareAnalysisPhaseKey options = (PrepareAnalysisPhaseKey) key.argument();
@@ -200,6 +202,7 @@
// TODO(bazel-team): error out early for targets that fail - untrimmed configurations should
// never make it through analysis (and especially not seed ConfiguredTargetValues)
// Keep this in sync with {@link ConfigurationResolver#getConfigurationsFromExecutor}.
+ @Nullable
private LinkedHashSet<TargetAndConfiguration> resolveConfigurations(
SkyFunction.Environment env,
Iterable<TargetAndConfiguration> nodes,
@@ -243,6 +246,7 @@
// Keep in sync with {@link SkyframeExecutor#getConfigurations}.
// Note: this implementation runs inside Skyframe, so it has access to SkyFunction.Environment.
+ @Nullable
private Multimap<DependencyKey, BuildConfigurationValue> getConfigurations(
SkyFunction.Environment env, BuildOptions fromOptions, Iterable<DependencyKey> keys)
throws InterruptedException, TransitionException, OptionsParsingException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
index 1fe80d8..94e3549 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunction.java
@@ -26,6 +26,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* Ensures the graph contains the targets in the directory's package, if any, and in the
@@ -40,6 +41,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env)
throws InterruptedException, ProcessPackageDirectorySkyFunctionException {
PrepareDepsOfTargetsUnderDirectoryKey argument =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareTestSuitesUnderDirectoryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareTestSuitesUnderDirectoryFunction.java
index 575066f..afb64f9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareTestSuitesUnderDirectoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareTestSuitesUnderDirectoryFunction.java
@@ -24,6 +24,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* {@link SkyFunction} to recursively traverse a directory and ensure {@link
@@ -37,6 +38,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env)
throws InterruptedException, ProcessPackageDirectorySkyFunctionException {
Key argument = (Key) skyKey.argument();
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 df82357..eaed121 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
@@ -513,6 +513,7 @@
* {@link FileInfo} so the caller should use these instead of the old ones (this happens when
* a package is found, but under a different root than expected)
*/
+ @Nullable
private static PkgLookupResult checkIfPackage(
Environment env, TraversalRequest traversal, FileInfo rootInfo, SyscallCache syscallCache)
throws IOException, InterruptedException, BuildFileNotFoundException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
index 1d14e1a..9693f5e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
@@ -60,6 +60,7 @@
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
+import javax.annotation.Nullable;
/** A {@link TargetPatternResolver} backed by a {@link RecursivePackageProvider}. */
@ThreadCompatible
@@ -108,6 +109,7 @@
}
@Override
+ @Nullable
public Target getTargetOrNull(Label label)
throws InterruptedException, InconsistentFilesystemException {
try {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
index 014a96c..614a49b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
@@ -183,6 +183,7 @@
return executionPlatforms.build();
}
+ @Nullable
private static ImmutableList<ConfiguredTargetKey> configureRegisteredExecutionPlatforms(
Environment env, BuildConfigurationValue configuration, List<Label> labels)
throws InterruptedException, RegisteredExecutionPlatformsFunctionException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
index 7920b0a..5c5daab 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
@@ -173,6 +173,7 @@
return toolchains.build();
}
+ @Nullable
private static ImmutableList<DeclaredToolchainInfo> configureRegisteredToolchains(
Environment env, BuildConfigurationValue configuration, List<Label> labels)
throws InterruptedException, RegisteredToolchainsFunctionException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
index 8ed519a..2ffbec0 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
@@ -897,6 +897,7 @@
private static ActionContinuationOrResult begin(
Action action, ActionExecutionContext actionExecutionContext) {
return new ActionContinuationOrResult() {
+ @Nullable
@Override
public ListenableFuture<?> getFuture() {
return null;
@@ -914,6 +915,7 @@
private static ActionContinuationOrResult runFully(
Action action, ActionExecutionContext actionExecutionContext) {
return new ActionContinuationOrResult() {
+ @Nullable
@Override
public ListenableFuture<?> getFuture() {
return null;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index b2cae68..32ef342 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -1851,6 +1851,7 @@
getConfigurations(eventHandler, ImmutableList.of(options), options, keepGoing));
}
+ @Nullable
public BuildConfigurationValue getConfiguration(
ExtendedEventHandler eventHandler, BuildConfigurationKey configurationKey) {
if (configurationKey == null) {
@@ -2459,6 +2460,7 @@
}
/** Returns the generating action of a given artifact ({@code null} if it's a source artifact). */
+ @Nullable
private ActionAnalysisMetadata getGeneratingAction(
ExtendedEventHandler eventHandler, Artifact artifact) throws InterruptedException {
if (artifact.isSourceArtifact()) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java
index 4dfeee9..2d33490 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java
@@ -35,6 +35,7 @@
import java.io.PrintStream;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;
+import javax.annotation.Nullable;
class SkyframePackageManager implements PackageManager, CachingPackageLocator {
private final SkyframePackageLoader packageLoader;
@@ -86,6 +87,7 @@
@ThreadSafe
@Override
+ @Nullable
public Path getBuildFileForPackage(PackageIdentifier packageName) {
// Note that this method needs to be thread-safe, as it is currently used concurrently by
// legacy blaze code.
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
index 561ff38..9abfe632 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
@@ -177,6 +177,7 @@
: new TargetParsingException(message, exception, TargetPatterns.Code.CANNOT_PRELOAD_TARGET);
}
+ @Nullable
private PatternLookup createPatternLookup(
PathFragment offset,
ExtendedEventHandler eventHandler,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkAspectFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkAspectFactory.java
index 763c952..53350d3 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkAspectFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkAspectFactory.java
@@ -29,6 +29,7 @@
import com.google.devtools.build.lib.packages.StructImpl;
import com.google.devtools.build.lib.packages.StructProvider;
import java.util.Map;
+import javax.annotation.Nullable;
import net.starlark.java.eval.Dict;
import net.starlark.java.eval.EvalException;
import net.starlark.java.eval.Starlark;
@@ -43,6 +44,7 @@
}
@Override
+ @Nullable
public ConfiguredAspect create(
ConfiguredTargetAndData ctadBase,
RuleContext ruleContext,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
index 5284f56..d87f4c2 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
@@ -35,6 +35,7 @@
import com.google.devtools.build.skyframe.SkyFunctionException;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* TargetPatternFunction translates a target pattern (eg, "foo/...") into a set of resolved Targets.
@@ -44,6 +45,7 @@
public TargetPatternFunction() {}
@Override
+ @Nullable
public SkyValue compute(SkyKey key, Environment env)
throws TargetPatternFunctionException, InterruptedException {
TargetPatternValue.TargetPatternKey patternKey =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
index a4a81fc..4b2153e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
@@ -62,6 +62,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nullable;
/**
* Takes a list of target patterns corresponding to a command line and turns it into a set of
@@ -71,6 +72,7 @@
public TargetPatternPhaseFunction() {}
@Override
+ @Nullable
public TargetPatternPhaseValue compute(SkyKey key, Environment env) throws InterruptedException {
TargetPatternPhaseKey options = (TargetPatternPhaseKey) key.argument();
WorkspaceNameValue workspaceName = (WorkspaceNameValue) env.getValue(WorkspaceNameValue.key());
@@ -338,6 +340,7 @@
}
/** Merges expansions from all patterns into a single {@link ResolvedTargets} instance. */
+ @Nullable
private static ResolvedTargets<Target> mergeAll(
List<ExpandedPattern> expandedPatterns,
boolean hasError,
@@ -390,6 +393,7 @@
* @param repoMapping the repository mapping to apply to repos in the patterns
* @param testFilter the test filter
*/
+ @Nullable
private static ResolvedTargets<Target> determineTests(
Environment env,
List<String> targetPatterns,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionFunction.java
index f2357ef..8b482fa 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionFunction.java
@@ -24,6 +24,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/**
* TestCompletionFunction builds all relevant test artifacts of a {@link
@@ -32,6 +33,7 @@
*/
public final class TestCompletionFunction implements SkyFunction {
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException {
TestCompletionValue.TestCompletionKey key =
(TestCompletionValue.TestCompletionKey) skyKey.argument();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java
index 9a0422c..26c46b3 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java
@@ -40,6 +40,7 @@
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
+import javax.annotation.Nullable;
/**
* TestExpansionFunction takes a single test_suite target and expands all of the tests it contains,
@@ -48,6 +49,7 @@
// TODO(ulfjack): What about test_suite rules that include each other.
final class TestExpansionFunction implements SkyFunction {
@Override
+ @Nullable
public SkyValue compute(SkyKey key, Environment env) throws InterruptedException {
TestExpansionKey expansion = (TestExpansionKey) key.argument();
SkyKey packageKey = PackageValue.key(expansion.getLabel().getPackageIdentifier());
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestsForTargetPatternFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestsForTargetPatternFunction.java
index 33ee1ba..ea18c97 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestsForTargetPatternFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestsForTargetPatternFunction.java
@@ -33,6 +33,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nullable;
/**
* Returns all tests that need to be run when testing is requested for a given set of targets.
@@ -41,6 +42,7 @@
*/
final class TestsForTargetPatternFunction implements SkyFunction {
@Override
+ @Nullable
public SkyValue compute(SkyKey key, Environment env) throws InterruptedException {
TestsForTargetPatternKey expansion = (TestsForTargetPatternKey) key.argument();
ResolvedTargets<Target> targets = labelsToTargets(env, expansion.getTargets(), false);
@@ -76,6 +78,7 @@
return new TestsForTargetPatternValue(new ResolvedTargets<>(result, hasError));
}
+ @Nullable
static ResolvedTargets<Target> labelsToTargets(
Environment env, ImmutableSet<Label> labels, boolean hasError) throws InterruptedException {
Set<PackageIdentifier> pkgIdentifiers = new LinkedHashSet<>();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
index f269f3e..18152fc 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
@@ -92,6 +92,7 @@
abstract Label argumentFromKey(SkyKey key);
+ @Nullable
@Override
public SkyValue compute(SkyKey key, Environment env)
throws TransitiveBaseTraversalFunctionException, InterruptedException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
index cdadffd..7d7c307 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
@@ -59,6 +59,7 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
+import javax.annotation.Nullable;
import net.starlark.java.eval.Module;
import net.starlark.java.eval.Mutability;
import net.starlark.java.eval.Starlark;
@@ -93,6 +94,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env)
throws WorkspaceFileFunctionException, InterruptedException {
WorkspaceFileKey key = (WorkspaceFileKey) skyKey.argument();
@@ -480,6 +482,7 @@
* immediately again; we probably should construct the statements directly out of the value to
* improve performance.
*/
+ @Nullable
private static String workspaceFromResolvedValue(RootedPath resolvedPath, Environment env)
throws WorkspaceFileFunctionException, InterruptedException {
ResolvedFileValue resolvedValue =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusFunction.java
index b65566e..272a753 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusFunction.java
@@ -18,6 +18,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import javax.annotation.Nullable;
/** Creates the workspace status artifacts and action. */
public class WorkspaceStatusFunction implements SkyFunction {
@@ -33,6 +34,7 @@
}
@Override
+ @Nullable
public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException {
Preconditions.checkState(
WorkspaceStatusValue.BUILD_INFO_KEY.equals(skyKey), WorkspaceStatusValue.BUILD_INFO_KEY);