diff options
Diffstat (limited to 'src')
4 files changed, 30 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java index a25592afc8..52e7dba46d 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java @@ -111,8 +111,7 @@ public class ConfiguredTargetQueryEnvironment private static final Function<SkyKey, ConfiguredTargetKey> SKYKEY_TO_CTKEY = skyKey -> (ConfiguredTargetKey) skyKey.argument(); private static final ImmutableList<TargetPatternKey> ALL_PATTERNS; - private static final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey> - CONFIGURED_TARGET_KEY_EXTRACTOR = ConfiguredTargetKey::of; + private final KeyExtractor<ConfiguredTarget, ConfiguredTargetKey> configuredTargetKeyExtractor; /** Common query functions and cquery specific functions. */ public static final ImmutableList<QueryFunction> FUNCTIONS = populateFunctions(); @@ -151,6 +150,19 @@ public class ConfiguredTargetQueryEnvironment this.pkgPath = pkgPath; this.walkableGraphSupplier = walkableGraphSupplier; this.accessor = new ConfiguredTargetAccessor(walkableGraphSupplier.get()); + this.configuredTargetKeyExtractor = + element -> { + try { + return ConfiguredTargetKey.of( + element, + element.getConfigurationKey() == null + ? null + : ((BuildConfigurationValue) graph.getValue(element.getConfigurationKey())) + .getConfiguration()); + } catch (InterruptedException e) { + throw new IllegalStateException("Interruption unexpected in configured query"); + } + }; } private void beforeEvaluateQuery() throws InterruptedException, QueryException { @@ -556,7 +568,8 @@ public class ConfiguredTargetQueryEnvironment @Override public ImmutableList<ConfiguredTarget> getNodesOnPath(ConfiguredTarget from, ConfiguredTarget to) throws InterruptedException { - return SkyQueryUtils.getNodesOnPath(from, to, this::getFwdDeps, ConfiguredTargetKey::of); + return SkyQueryUtils.getNodesOnPath( + from, to, this::getFwdDeps, configuredTargetKeyExtractor::extractKey); } @Override @@ -581,26 +594,26 @@ public class ConfiguredTargetQueryEnvironment @Override public ThreadSafeMutableSet<ConfiguredTarget> createThreadSafeMutableSet() { return new ThreadSafeMutableKeyExtractorBackedSetImpl<>( - CONFIGURED_TARGET_KEY_EXTRACTOR, + configuredTargetKeyExtractor, ConfiguredTarget.class, SkyQueryEnvironment.DEFAULT_THREAD_COUNT); } @Override public <V> MutableMap<ConfiguredTarget, V> createMutableMap() { - return new MutableKeyExtractorBackedMapImpl<>(CONFIGURED_TARGET_KEY_EXTRACTOR); + return new MutableKeyExtractorBackedMapImpl<>(configuredTargetKeyExtractor); } @Override public Uniquifier<ConfiguredTarget> createUniquifier() { return new UniquifierImpl<>( - CONFIGURED_TARGET_KEY_EXTRACTOR, SkyQueryEnvironment.DEFAULT_THREAD_COUNT); + configuredTargetKeyExtractor, SkyQueryEnvironment.DEFAULT_THREAD_COUNT); } @Override public MinDepthUniquifier<ConfiguredTarget> createMinDepthUniquifier() { return new MinDepthUniquifierImpl<>( - CONFIGURED_TARGET_KEY_EXTRACTOR, SkyQueryEnvironment.DEFAULT_THREAD_COUNT); + configuredTargetKeyExtractor, SkyQueryEnvironment.DEFAULT_THREAD_COUNT); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java index 92874215cd..957036707e 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java @@ -43,12 +43,6 @@ public class ConfiguredTargetKey extends ActionLookupKey { this.configurationKey = configurationKey; } - /** Use {@link #of(ConfiguredTarget, BuildConfiguration)} instead of this. */ - @Deprecated - public static ConfiguredTargetKey of(ConfiguredTarget configuredTarget) { - return of(configuredTarget, configuredTarget.getConfiguration()); - } - private static Label getLabel(ConfiguredTarget configuredTarget) { AliasProvider aliasProvider = configuredTarget.getProvider(AliasProvider.class); return aliasProvider != null diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java index 6c7f29319a..8205af49d7 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java @@ -476,7 +476,8 @@ public abstract class AnalysisTestCase extends FoundationTestCase { .getDerivedArtifact( label.getPackageFragment().getRelative(packageRelativePath), getTargetConfiguration().getBinDirectory(label.getPackageIdentifier().getRepository()), - ConfiguredTargetKey.of(owner)); + ConfiguredTargetKey.of( + owner, skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey()))); } protected Set<SkyKey> getSkyframeEvaluatedTargetKeys() { diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java index bcad79f2f6..7d394a78e1 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java @@ -1124,7 +1124,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase { return getPackageRelativeDerivedArtifact( packageRelativePath, owner.getConfiguration().getBinDirectory(RepositoryName.MAIN), - ConfiguredTargetKey.of(owner)); + ConfiguredTargetKey.of( + owner, skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey()))); } /** @@ -1200,8 +1201,10 @@ public abstract class BuildViewTestCase extends FoundationTestCase { * just be "foo.o". */ protected Artifact getGenfilesArtifact(String packageRelativePath, ConfiguredTarget owner) { - ConfiguredTargetKey configKey = ConfiguredTargetKey.of(owner); - return getGenfilesArtifact(packageRelativePath, configKey, owner.getConfiguration()); + BuildConfiguration configuration = + skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey()); + ConfiguredTargetKey configKey = ConfiguredTargetKey.of(owner, configuration); + return getGenfilesArtifact(packageRelativePath, configKey, configuration); } /** @@ -1283,7 +1286,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase { return getDerivedArtifact( PathFragment.create(rootRelativePath), targetConfig.getBinDirectory(RepositoryName.MAIN), - ConfiguredTargetKey.of(owner)); + ConfiguredTargetKey.of( + owner, skyframeExecutor.getConfiguration(reporter, owner.getConfigurationKey()))); } protected Action getGeneratingActionForLabel(String label) throws Exception { |