From b5052b88e89657aa0315b25772d9164a2c325f24 Mon Sep 17 00:00:00 2001 From: Googler Date: Thu, 3 Nov 2022 11:33:56 -0700 Subject: [PATCH] Remove remaining calls to `getOrderedValuesAndExceptions` and tests. After this, all that remains is unused implementations. PiperOrigin-RevId: 485928424 Change-Id: Idfa158fc1dfed3d13f1b23b55d23867b5db5b956 --- .../lib/skyframe/ConfiguredTargetAndData.java | 11 +- .../skyframe/ConstraintValueLookupUtil.java | 10 +- ...ronmentBackedRecursivePackageProvider.java | 26 ++-- .../build/lib/skyframe/PackageFunction.java | 14 +-- .../lib/skyframe/PlatformLookupUtil.java | 22 ++-- .../PrepareDepsOfPatternsFunction.java | 7 +- .../RecursiveDirectoryTraversalFunction.java | 16 +-- .../RecursiveFilesystemTraversalFunction.java | 6 +- .../RegisteredExecutionPlatformsFunction.java | 6 +- .../RegisteredToolchainsFunction.java | 6 +- .../StarlarkBuildSettingsDetailsFunction.java | 12 +- .../skyframe/TargetPatternPhaseFunction.java | 12 +- .../build/lib/skyframe/TargetPatternUtil.java | 12 +- .../lib/skyframe/TestExpansionFunction.java | 6 +- .../TestsForTargetPatternFunction.java | 12 +- .../lib/skyframe/ToolchainTypeLookupUtil.java | 10 +- .../ToplevelStarlarkAspectFunction.java | 8 +- .../build/skyframe/GraphTraversingHelper.java | 24 ++-- .../devtools/build/skyframe/NodeEntry.java | 2 +- .../devtools/build/skyframe/SkyFunction.java | 2 + .../build/skyframe/SkyframeLookupResult.java | 4 + .../LocalDiffAwarenessIntegrationTest.java | 4 +- .../skyframe/GraphTraversingHelperTest.java | 62 +++++----- .../skyframe/MemoizingEvaluatorTest.java | 22 ++-- .../build/skyframe/ParallelEvaluatorTest.java | 114 +----------------- 25 files changed, 168 insertions(+), 262 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndData.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndData.java index e7d89565704d90..a5d0d953c00441 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndData.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndData.java @@ -24,7 +24,7 @@ import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import javax.annotation.Nullable; /** @@ -104,15 +104,16 @@ static ConfiguredTargetAndData fromConfiguredTargetInSkyframe( } else { packageAndMaybeConfiguration = ImmutableSet.of(packageKey, configurationKeyMaybe); } - SkyframeIterableResult packageAndMaybeConfigurationValues = - env.getOrderedValuesAndExceptions(packageAndMaybeConfiguration); + SkyframeLookupResult packageAndMaybeConfigurationValues = + env.getValuesAndExceptions(packageAndMaybeConfiguration); // Don't test env.valuesMissing(), because values may already be missing from the caller. - PackageValue packageValue = (PackageValue) packageAndMaybeConfigurationValues.next(); + PackageValue packageValue = (PackageValue) packageAndMaybeConfigurationValues.get(packageKey); if (packageValue == null) { return null; } if (configurationKeyMaybe != null) { - configuration = (BuildConfigurationValue) packageAndMaybeConfigurationValues.next(); + configuration = + (BuildConfigurationValue) packageAndMaybeConfigurationValues.get(configurationKeyMaybe); if (configuration == null) { return null; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConstraintValueLookupUtil.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConstraintValueLookupUtil.java index a295a7cb20704d..dbe9325a8690c4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConstraintValueLookupUtil.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConstraintValueLookupUtil.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.server.FailureDetails.Toolchain.Code; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; @@ -36,7 +37,7 @@ public static List getConstraintValueInfo( Iterable constraintValueKeys, Environment env) throws InterruptedException, InvalidConstraintValueException { - SkyframeIterableResult values = env.getOrderedValuesAndExceptions(constraintValueKeys); + SkyframeLookupResult values = env.getValuesAndExceptions(constraintValueKeys); boolean valuesMissing = env.valuesMissing(); List constraintValues = valuesMissing ? null : new ArrayList<>(); for (ConfiguredTargetKey key : constraintValueKeys) { @@ -59,13 +60,12 @@ public static List getConstraintValueInfo( */ @Nullable private static ConstraintValueInfo findConstraintValueInfo( - ConfiguredTargetKey key, SkyframeIterableResult values) - throws InvalidConstraintValueException { - + ConfiguredTargetKey key, SkyframeLookupResult values) throws InvalidConstraintValueException { try { ConfiguredTargetValue ctv = (ConfiguredTargetValue) - values.nextOrThrow( + values.getOrThrow( + key, ConfiguredValueCreationException.class, NoSuchThingException.class, ActionConflictException.class); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java index 4852dcdfe023dd..8ede80d9c38f00 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java @@ -36,7 +36,7 @@ import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyKey; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -199,23 +199,23 @@ public void streamPackagesUnderDirectory( ImmutableSet.copyOf( Iterables.filter(ignoredSubdirectories, path -> path.startsWith(directory))); - SkyframeIterableResult recursivePackageValues = - env.getOrderedValuesAndExceptions( - Iterables.transform( - roots, - r -> - RecursivePkgValue.key( - repository, - RootedPath.toRootedPath(r, directory), - filteredIgnoredSubdirectories))); + Iterable recursivePackageKeys = + Iterables.transform( + roots, + r -> + RecursivePkgValue.key( + repository, + RootedPath.toRootedPath(r, directory), + filteredIgnoredSubdirectories)); + SkyframeLookupResult recursivePackageValues = env.getValuesAndExceptions(recursivePackageKeys); NoSuchPackageException firstNspe = null; - while (recursivePackageValues.hasNext()) { + for (RecursivePkgValue.Key key : recursivePackageKeys) { RecursivePkgValue lookup; try { lookup = (RecursivePkgValue) - recursivePackageValues.nextOrThrow( - NoSuchPackageException.class, ProcessPackageDirectoryException.class); + recursivePackageValues.getOrThrow( + key, NoSuchPackageException.class, ProcessPackageDirectoryException.class); } catch (NoSuchPackageException e) { // NoSuchPackageException can happen during error bubbling in a no-keep-going build. if (firstNspe == null) { 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 a8e4ee4f94b2e6..fbed05411c5ffb 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 @@ -77,7 +77,6 @@ import com.google.devtools.build.skyframe.SkyFunctionException.Transience; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; import com.google.devtools.build.skyframe.SkyframeLookupResult; import com.google.errorprone.annotations.CanIgnoreReturnValue; import java.io.IOException; @@ -286,10 +285,10 @@ private static void handleGlobDepsAndPropagateFilesystemExceptions( throws InternalInconsistentFilesystemException, FileSymlinkException, InterruptedException { checkState(Iterables.all(depKeys, SkyFunctions.isSkyFunction(SkyFunctions.GLOB)), depKeys); FileSymlinkException arbitraryFse = null; - SkyframeIterableResult skyframeIterableResult = env.getOrderedValuesAndExceptions(depKeys); - while (skyframeIterableResult.hasNext()) { + SkyframeLookupResult result = env.getValuesAndExceptions(depKeys); + for (SkyKey key : depKeys) { try { - skyframeIterableResult.nextOrThrow(IOException.class, BuildFileNotFoundException.class); + result.getOrThrow(key, IOException.class, BuildFileNotFoundException.class); } catch (InconsistentFilesystemException e) { throw new InternalInconsistentFilesystemException(packageIdentifier, e); } catch (FileSymlinkException e) { @@ -725,11 +724,12 @@ private static List computeBzlLoadsNoInlining( Environment env, List keys) throws InterruptedException, BzlLoadFailedException { List bzlLoads = Lists.newArrayListWithExpectedSize(keys.size()); - SkyframeIterableResult starlarkLookupResults = env.getOrderedValuesAndExceptions(keys); - for (int i = 0; i < keys.size(); i++) { + SkyframeLookupResult starlarkLookupResults = env.getValuesAndExceptions(keys); + for (BzlLoadValue.Key key : keys) { // TODO(adonovan): if get fails, report the source location // in the corresponding programLoads[i] (see caller). - bzlLoads.add((BzlLoadValue) starlarkLookupResults.nextOrThrow(BzlLoadFailedException.class)); + bzlLoads.add( + (BzlLoadValue) starlarkLookupResults.getOrThrow(key, BzlLoadFailedException.class)); } return env.valuesMissing() ? null : bzlLoads; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PlatformLookupUtil.java b/src/main/java/com/google/devtools/build/lib/skyframe/PlatformLookupUtil.java index 8cf6d108351f3f..429a3bbedacd30 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PlatformLookupUtil.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PlatformLookupUtil.java @@ -35,6 +35,7 @@ import com.google.devtools.build.lib.server.FailureDetails.Toolchain.Code; import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; @@ -51,7 +52,7 @@ public static Map getPlatformInfo( return null; } - SkyframeIterableResult values = env.getOrderedValuesAndExceptions(platformKeys); + SkyframeLookupResult values = env.getValuesAndExceptions(platformKeys); boolean valuesMissing = env.valuesMissing(); Map platforms = valuesMissing ? null : new HashMap<>(); for (ConfiguredTargetKey key : platformKeys) { @@ -80,12 +81,13 @@ private static void validatePlatformKeys( .map(PackageValue::key) .collect(toImmutableSet()); - SkyframeIterableResult values = env.getOrderedValuesAndExceptions(packageKeys); + SkyframeLookupResult values = env.getValuesAndExceptions(packageKeys); boolean valuesMissing = env.valuesMissing(); Map packages = valuesMissing ? null : new HashMap<>(); - while (values.hasNext()) { + for (PackageValue.Key packageKey : packageKeys) { try { - PackageValue packageValue = (PackageValue) values.nextOrThrow(NoSuchPackageException.class); + PackageValue packageValue = + (PackageValue) values.getOrThrow(packageKey, NoSuchPackageException.class); if (!valuesMissing && packageValue != null) { packages.put(packageValue.getPackage().getPackageIdentifier(), packageValue.getPackage()); } @@ -125,13 +127,13 @@ private static void validatePlatformKeys( * InvalidPlatformException} is thrown. */ @Nullable - private static PlatformInfo findPlatformInfo( - ConfiguredTargetKey key, SkyframeIterableResult values) throws InvalidPlatformException { - + private static PlatformInfo findPlatformInfo(ConfiguredTargetKey key, SkyframeLookupResult values) + throws InvalidPlatformException { try { ConfiguredTargetValue ctv = (ConfiguredTargetValue) - values.nextOrThrow( + values.getOrThrow( + key, ConfiguredValueCreationException.class, NoSuchThingException.class, ActionConflictException.class); @@ -191,10 +193,6 @@ public InvalidPlatformException(Label label, ActionConflictException e) { super(formatError(label, DEFAULT_ERROR), e); } - InvalidPlatformException(Label label, String error) { - super(formatError(label, error)); - } - @Override protected Code getDetailedCode() { return Code.INVALID_PLATFORM_VALUE; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java index e2e158a8facf4a..f2404751afb79b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java @@ -34,7 +34,7 @@ import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import javax.annotation.Nullable; /** @@ -103,7 +103,7 @@ public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedExcept RepositoryMapping mainRepoMapping = repositoryMappingValue.getRepositoryMapping(); ImmutableList skyKeys = getSkyKeys(skyKey, eventHandler, mainRepoMapping); - SkyframeIterableResult tokensByKey = env.getOrderedValuesAndExceptions(skyKeys); + SkyframeLookupResult tokensByKey = env.getValuesAndExceptions(skyKeys); if (env.valuesMissing()) { return null; } @@ -111,7 +111,8 @@ public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedExcept for (SkyKey key : skyKeys) { try { SkyValue value = - tokensByKey.nextOrThrow( + tokensByKey.getOrThrow( + key, TargetParsingException.class, ProcessPackageDirectoryException.class, InconsistentFilesystemException.class); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java index 45c09b11cf6ddc..67004111091b06 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveDirectoryTraversalFunction.java @@ -27,7 +27,7 @@ import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import com.google.errorprone.annotations.ForOverride; import java.util.Map; import javax.annotation.Nullable; @@ -145,7 +145,7 @@ public final ReturnT visitDirectory(RecursivePkgKey recursivePkgKey, Environment Iterable childDeps = processPackageDirectoryResult.getChildDeps(); ConsumerT consumer = getInitialConsumer(); - SkyframeIterableResult dependentSkyValues; + SkyframeLookupResult dependentSkyValues; if (processPackageDirectoryResult.packageExists()) { PathFragment rootRelativePath = recursivePkgKey.getRootedPath().getRootRelativePath(); SkyKey packageErrorMessageKey = @@ -155,13 +155,13 @@ public final ReturnT visitDirectory(RecursivePkgKey recursivePkgKey, Environment // NoSuchPackageException. Since we don't catch such an exception here, this SkyFunction will // return immediately with a missing value, and the NoSuchPackageException will propagate up. dependentSkyValues = - env.getOrderedValuesAndExceptions( + env.getValuesAndExceptions( Iterables.concat(ImmutableList.of(packageErrorMessageKey), childDeps)); if (env.valuesMissing()) { return null; } PackageErrorMessageValue pkgErrorMessageValue = - (PackageErrorMessageValue) dependentSkyValues.next(); + (PackageErrorMessageValue) dependentSkyValues.get(packageErrorMessageKey); if (pkgErrorMessageValue == null) { return null; } @@ -185,15 +185,15 @@ public final ReturnT visitDirectory(RecursivePkgKey recursivePkgKey, Environment throw new IllegalStateException(pkgErrorMessageValue.getResult().toString()); } } else { - dependentSkyValues = env.getOrderedValuesAndExceptions(childDeps); + dependentSkyValues = env.getValuesAndExceptions(childDeps); if (env.valuesMissing()) { - return null; - } + return null; + } } ImmutableMap.Builder subdirectorySkyValuesFromDeps = ImmutableMap.builderWithExpectedSize(Iterables.size(childDeps)); for (SkyKey skyKey : childDeps) { - SkyValue skyValue = dependentSkyValues.next(); + SkyValue skyValue = dependentSkyValues.get(skyKey); if (skyValue == null) { return null; } 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 de37dd53065dde..180df4aa08f2d4 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 @@ -57,7 +57,7 @@ import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.io.IOException; import java.math.BigInteger; import java.util.ArrayList; @@ -706,11 +706,11 @@ private ImmutableList traverseSourceChildren( } } - SkyframeIterableResult result = env.getOrderedValuesAndExceptions(childKeys); + SkyframeLookupResult result = env.getValuesAndExceptions(childKeys); ImmutableList.Builder childValues = ImmutableList.builderWithExpectedSize(childKeys.size()); for (SkyKey key : childKeys) { - SkyValue value = result.next(); + SkyValue value = result.get(key); if (value == null) { continue; } 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 93c972bdc3d615..bb464a6328539a 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 @@ -50,7 +50,7 @@ import com.google.devtools.build.skyframe.SkyFunctionException.Transience; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.List; import javax.annotation.Nullable; import net.starlark.java.eval.StarlarkSemantics; @@ -200,13 +200,13 @@ private static ImmutableList configureRegisteredExecutionPl .build()) .collect(toImmutableList()); - SkyframeIterableResult values = env.getOrderedValuesAndExceptions(keys); + SkyframeLookupResult values = env.getValuesAndExceptions(keys); ImmutableList.Builder validPlatformKeys = new ImmutableList.Builder<>(); boolean valuesMissing = false; for (ConfiguredTargetKey platformKey : keys) { Label platformLabel = platformKey.getLabel(); try { - SkyValue value = values.nextOrThrow(ConfiguredValueCreationException.class); + SkyValue value = values.getOrThrow(platformKey, ConfiguredValueCreationException.class); if (value == null) { valuesMissing = true; continue; 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 cb2e3b51f3c0c9..90f88c0b673af1 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 @@ -44,7 +44,7 @@ import com.google.devtools.build.skyframe.SkyFunctionException.Transience; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.List; import javax.annotation.Nullable; import net.starlark.java.eval.StarlarkSemantics; @@ -189,14 +189,14 @@ private static ImmutableList configureRegisteredToolchain .build()) .collect(toImmutableList()); - SkyframeIterableResult values = env.getOrderedValuesAndExceptions(keys); + SkyframeLookupResult values = env.getValuesAndExceptions(keys); ImmutableList.Builder toolchains = new ImmutableList.Builder<>(); boolean valuesMissing = false; for (SkyKey key : keys) { ConfiguredTargetKey configuredTargetKey = (ConfiguredTargetKey) key.argument(); Label toolchainLabel = configuredTargetKey.getLabel(); try { - SkyValue value = values.nextOrThrow(ConfiguredValueCreationException.class); + SkyValue value = values.getOrThrow(key, ConfiguredValueCreationException.class); if (value == null) { valuesMissing = true; continue; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuildSettingsDetailsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuildSettingsDetailsFunction.java index e5afa5234349bd..fc469b3a48d59d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuildSettingsDetailsFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuildSettingsDetailsFunction.java @@ -35,7 +35,7 @@ import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -51,7 +51,7 @@ final class StarlarkBuildSettingsDetailsFunction implements SkyFunction { private static final String ALIAS_RULE_NAME = "alias"; private static final String ALIAS_ACTUAL_ATTRIBUTE_NAME = "actual"; - public StarlarkBuildSettingsDetailsFunction() {} + StarlarkBuildSettingsDetailsFunction() {} @Override @Nullable @@ -155,14 +155,14 @@ private static ImmutableMap getBuildSettingPacka } ImmutableSet packageKeys = getPackageKeysFromLabels(unverifiedBuildSettings); - SkyframeIterableResult newlyLoaded = env.getOrderedValuesAndExceptions(packageKeys); + SkyframeLookupResult newlyLoaded = env.getValuesAndExceptions(packageKeys); if (env.valuesMissing()) { return null; } - for (SkyKey packageKey : packageKeys) { + for (PackageValue.Key packageKey : packageKeys) { try { - SkyValue skyValue = newlyLoaded.nextOrThrow(NoSuchPackageException.class); - buildSettingPackages.put((PackageValue.Key) packageKey, (PackageValue) skyValue); + SkyValue skyValue = newlyLoaded.getOrThrow(packageKey, NoSuchPackageException.class); + buildSettingPackages.put(packageKey, (PackageValue) skyValue); } catch (NoSuchPackageException e) { throw new TransitionException(e); } 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 4b2153e62a5407..acebe98f8b8e1a 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 @@ -51,9 +51,7 @@ import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.SkyFunction; -import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyKey; -import com.google.devtools.build.skyframe.SkyframeIterableResult; import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.ArrayList; import java.util.Collection; @@ -308,13 +306,14 @@ private static List getTargetsToBuild( } } - SkyframeIterableResult resolvedPatterns = env.getOrderedValuesAndExceptions(patternSkyKeys); + SkyframeLookupResult resolvedPatterns = env.getValuesAndExceptions(patternSkyKeys); List expandedPatterns = new ArrayList<>(patternSkyKeys.size()); for (TargetPatternKey pattern : patternSkyKeys) { TargetPatternValue value; try { - value = (TargetPatternValue) resolvedPatterns.nextOrThrow(TargetParsingException.class); + value = + (TargetPatternValue) resolvedPatterns.getOrThrow(pattern, TargetParsingException.class); } catch (TargetParsingException e) { String rawPattern = pattern.getPattern(); String errorMessage = e.getMessage(); @@ -435,12 +434,13 @@ private static ResolvedTargets determineTests( } expandedSuiteKeys.add(TestsForTargetPatternValue.key(value.getTargets().getTargets())); } - SkyframeIterableResult expandedSuites = env.getOrderedValuesAndExceptions(expandedSuiteKeys); + SkyframeLookupResult expandedSuites = env.getValuesAndExceptions(expandedSuiteKeys); if (env.valuesMissing()) { return null; } ResolvedTargets.Builder testTargetsBuilder = ResolvedTargets.builder(); + int suiteKeyIndex = 0; for (TargetPatternKey pattern : patternSkyKeys) { TargetPatternValue value; try { @@ -458,7 +458,7 @@ private static ResolvedTargets determineTests( } TestsForTargetPatternValue expandedSuitesValue = - (TestsForTargetPatternValue) expandedSuites.next(); + (TestsForTargetPatternValue) expandedSuites.get(expandedSuiteKeys.get(suiteKeyIndex++)); if (expandedSuitesValue == null) { BugReport.logUnexpected("Value for: '%s' was missing, this should never happen", pattern); return null; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternUtil.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternUtil.java index 2fb8a285ca35ed..576f44cfbff23d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternUtil.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternUtil.java @@ -26,7 +26,7 @@ import com.google.devtools.build.lib.pkgcache.FilteringPolicy; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey; import com.google.devtools.build.skyframe.SkyFunction.Environment; -import com.google.devtools.build.skyframe.SkyframeIterableResult; +import com.google.devtools.build.skyframe.SkyframeLookupResult; import java.util.List; import javax.annotation.Nullable; @@ -49,14 +49,14 @@ public static ImmutableList