diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
3 files changed, 30 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java index 529cb4d668..b6619a9ec8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java @@ -69,8 +69,6 @@ import com.google.devtools.build.lib.query2.output.QueryOptions.OrderOutput; import com.google.devtools.build.lib.query2.output.QueryOutputUtils; import com.google.devtools.build.lib.runtime.KeepGoingOption; import com.google.devtools.build.lib.skyframe.PackageValue; -import com.google.devtools.build.lib.skyframe.PrecomputedValue.Precomputed; -import com.google.devtools.build.lib.skyframe.SkyFunctions; import com.google.devtools.build.lib.skyframe.TargetPatternValue; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey; import com.google.devtools.build.lib.skyframe.TransitiveTargetKey; @@ -80,7 +78,6 @@ import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; -import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.ValueOrException; @@ -103,8 +100,6 @@ import javax.annotation.Nullable; public class GenQuery implements RuleConfiguredTargetFactory { private static final QueryEnvironmentFactory QUERY_ENVIRONMENT_FACTORY = new QueryEnvironmentFactory(); - public static final Precomputed<ImmutableList<OutputFormatter>> QUERY_OUTPUT_FORMATTERS = - new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "query_output_formatters")); @Override @Nullable diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java index eafa09fb5c..a4b6c9a16b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java @@ -26,15 +26,13 @@ import com.google.devtools.build.lib.repository.ExternalPackageUtil; import com.google.devtools.build.lib.repository.ExternalRuleNotFoundException; import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.skyframe.FileValue; +import com.google.devtools.build.lib.skyframe.PrecomputedValue; import com.google.devtools.build.lib.skyframe.PrecomputedValue.Precomputed; -import com.google.devtools.build.lib.skyframe.SkyFunctions; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; -import com.google.devtools.build.skyframe.LegacySkyKey; import com.google.devtools.build.skyframe.SkyFunction; -import com.google.devtools.build.skyframe.SkyFunction.Environment; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionException.Transience; import com.google.devtools.build.skyframe.SkyKey; @@ -56,7 +54,7 @@ import javax.annotation.Nullable; */ public final class RepositoryDelegatorFunction implements SkyFunction { public static final Precomputed<Map<RepositoryName, PathFragment>> REPOSITORY_OVERRIDES = - new Precomputed<>(LegacySkyKey.create(SkyFunctions.PRECOMPUTED, "repository_overrides")); + new Precomputed<>(PrecomputedValue.Key.create("repository_overrides")); // The marker file version is inject in the rule key digest so the rule key is always different // when we decide to update the format. diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java index 6e21ad5b70..c2ce139864 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDirectoryValue.java @@ -16,12 +16,15 @@ package com.google.devtools.build.lib.rules.repository; import com.google.common.base.Objects; import com.google.common.base.Preconditions; +import com.google.common.collect.Interner; import com.google.devtools.build.lib.cmdline.RepositoryName; +import com.google.devtools.build.lib.concurrent.BlazeInterners; import com.google.devtools.build.lib.skyframe.DirectoryListingValue; import com.google.devtools.build.lib.skyframe.SkyFunctions; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.vfs.Path; -import com.google.devtools.build.skyframe.LegacySkyKey; -import com.google.devtools.build.skyframe.SkyKey; +import com.google.devtools.build.skyframe.AbstractSkyKey; +import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyValue; import java.util.Arrays; import javax.annotation.Nullable; @@ -124,8 +127,29 @@ public abstract class RepositoryDirectoryValue implements SkyValue { new NoRepositoryDirectoryValue(); /** Creates a key from the given repository name. */ - public static SkyKey key(RepositoryName repository) { - return LegacySkyKey.create(SkyFunctions.REPOSITORY_DIRECTORY, repository); + public static Key key(RepositoryName repository) { + return Key.create(repository); + } + + @AutoCodec.VisibleForSerialization + @AutoCodec + static class Key extends AbstractSkyKey<RepositoryName> { + private static final Interner<Key> interner = BlazeInterners.newWeakInterner(); + + private Key(RepositoryName arg) { + super(arg); + } + + @AutoCodec.VisibleForSerialization + @AutoCodec.Instantiator + static Key create(RepositoryName arg) { + return interner.intern(new Key(arg)); + } + + @Override + public SkyFunctionName functionName() { + return SkyFunctions.REPOSITORY_DIRECTORY; + } } public static Builder builder() { |