diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
9 files changed, 59 insertions, 58 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java index 872a153777..d1aa8878fd 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java @@ -20,6 +20,7 @@ import com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfigu import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.skylarkinterface.SkylarkValue; import com.google.devtools.build.lib.syntax.ClassObject; +import com.google.devtools.build.lib.syntax.EvalException; import javax.annotation.Nullable; /** @@ -63,11 +64,11 @@ public interface ConfiguredTarget extends TransitiveInfoCollection, ClassObject, /** * Returns keys for a legacy Skylark provider. * - * Overrides {@link ClassObject#getKeys()}, but does not allow {@link EvalException} to + * Overrides {@link ClassObject#getFieldNames()}, but does not allow {@link EvalException} to * be thrown. */ @Override - ImmutableCollection<String> getKeys(); + ImmutableCollection<String> getFieldNames(); /** * Returns a legacy Skylark provider. diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java index a9b5461759..9af9811a50 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java @@ -96,7 +96,7 @@ public final class DefaultInfo extends NativeInfo { } @Override - public ImmutableCollection<String> getKeys() { + public ImmutableCollection<String> getFieldNames() { return KEYS; } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java index 8c313d091d..73c1f8bcfa 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java @@ -252,7 +252,7 @@ public final class OutputGroupInfo extends NativeInfo } @Override - public ImmutableCollection<String> getKeys() { + public ImmutableCollection<String> getFieldNames() { return outputGroups.keySet(); } @@ -281,8 +281,8 @@ public final class OutputGroupInfo extends NativeInfo } @Override - public String getErrorMessageFormatForInstances() { - return "Output group %s not present"; + public String getErrorMessageFormatForUnknownField() { + return "Output group '%s' not present"; } } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java index d0a779c1c7..d11e3bd5be 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java @@ -53,21 +53,21 @@ public class FragmentCollection implements ClassObject { } @Override - public ImmutableCollection<String> getKeys() { + public ImmutableCollection<String> getFieldNames() { return ruleContext.getSkylarkFragmentNames(transition); } @Override @Nullable - public String errorMessage(String name) { + public String getErrorMessageForUnknownField(String name) { return String.format( "There is no configuration fragment named '%s' in %s configuration. " + "Available fragments: %s", - name, getConfigurationName(transition), printKeys()); + name, getConfigurationName(transition), fieldsToString()); } - private String printKeys() { - return String.format("'%s'", Joiner.on("', '").join(getKeys())); + private String fieldsToString() { + return String.format("'%s'", Joiner.on("', '").join(getFieldNames())); } public static String getConfigurationName(Transition config) { @@ -76,6 +76,6 @@ public class FragmentCollection implements ClassObject { @Override public String toString() { - return getConfigurationName(transition) + ": [ " + printKeys() + "]"; + return getConfigurationName(transition) + ": [ " + fieldsToString() + "]"; } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java index ca2fc81fc3..c00f385c8e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java @@ -152,12 +152,12 @@ public abstract class AbstractConfiguredTarget } @Override - public String errorMessage(String name) { + public String getErrorMessageForUnknownField(String name) { return null; } @Override - public final ImmutableCollection<String> getKeys() { + public final ImmutableCollection<String> getFieldNames() { ImmutableList.Builder<String> result = ImmutableList.builder(); result.addAll(ImmutableList.of( DATA_RUNFILES_FIELD, diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java index 30959f72be..f79f4cf6db 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java @@ -142,7 +142,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { } @Override - public String errorMessage(String name) { + public String getErrorMessageForUnknownField(String name) { return Printer.format("%r (rule '%s') doesn't have provider '%s'", this, getTarget().getRuleClass(), name); } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java index 1879227a38..e27d47963e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java @@ -1062,11 +1062,11 @@ public class SkylarkRuleClassFunctions { private void printProtoTextMessage( ClassObject object, StringBuilder sb, int indent, Location loc) throws EvalException { - // For determinism sort the keys alphabetically - List<String> keys = new ArrayList<>(object.getKeys()); - Collections.sort(keys); - for (String key : keys) { - printProtoTextMessage(key, object.getValue(key), sb, indent, loc); + // For determinism sort the fields alphabetically. + List<String> fields = new ArrayList<>(object.getFieldNames()); + Collections.sort(fields); + for (String field : fields) { + printProtoTextMessage(field, object.getValue(field), sb, indent, loc); } } @@ -1175,13 +1175,13 @@ public class SkylarkRuleClassFunctions { sb.append("{"); String join = ""; - for (String subKey : ((ClassObject) value).getKeys()) { + for (String field : ((ClassObject) value).getFieldNames()) { sb.append(join); join = ","; sb.append("\""); - sb.append(subKey); + sb.append(field); sb.append("\":"); - printJson(((ClassObject) value).getValue(subKey), sb, loc, "struct field", subKey); + printJson(((ClassObject) value).getValue(field), sb, loc, "struct field", field); } sb.append("}"); } else if (value instanceof List) { diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java index 7f3a3b15b2..b398073f70 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java @@ -66,7 +66,7 @@ public final class SkylarkRuleConfiguredTargetUtil { private SkylarkRuleConfiguredTargetUtil() {} - private static final ImmutableSet<String> DEFAULT_PROVIDER_KEYS = + private static final ImmutableSet<String> DEFAULT_PROVIDER_FIELDS = ImmutableSet.of("files", "runfiles", "data_runfiles", "default_runfiles", "executable"); /** @@ -190,7 +190,7 @@ public final class SkylarkRuleConfiguredTargetUtil { throws EvalException { Location insLoc = insStruct.getCreationLoc(); FileTypeSet fileTypeSet = FileTypeSet.ANY_FILE; - if (insStruct.getKeys().contains("extensions")) { + if (insStruct.getFieldNames().contains("extensions")) { @SuppressWarnings("unchecked") List<String> exts = cast("extensions", insStruct, SkylarkList.class, String.class, insLoc); if (exts.isEmpty()) { @@ -204,12 +204,12 @@ public final class SkylarkRuleConfiguredTargetUtil { } } List<String> dependencyAttributes = Collections.emptyList(); - if (insStruct.getKeys().contains("dependency_attributes")) { + if (insStruct.getFieldNames().contains("dependency_attributes")) { dependencyAttributes = cast("dependency_attributes", insStruct, SkylarkList.class, String.class, insLoc); } List<String> sourceAttributes = Collections.emptyList(); - if (insStruct.getKeys().contains("source_attributes")) { + if (insStruct.getFieldNames().contains("source_attributes")) { sourceAttributes = cast("source_attributes", insStruct, SkylarkList.class, String.class, insLoc); } @@ -280,7 +280,7 @@ public final class SkylarkRuleConfiguredTargetUtil { // Old-style struct, but it may contain declared providers oldStyleProviders = struct; - if (struct.hasKey("providers")) { + if (struct.hasField("providers")) { Iterable iterable = cast("providers", struct, Iterable.class, loc); for (Object o : iterable) { Info declaredProvider = @@ -317,7 +317,7 @@ public final class SkylarkRuleConfiguredTargetUtil { .getProvider() .getKey() .equals(DefaultInfo.PROVIDER.getKey())) { - parseDefaultProviderKeys(declaredProvider, context, builder); + parseDefaultProviderFields(declaredProvider, context, builder); defaultProviderProvidedExplicitly = true; } else { builder.addSkylarkDeclaredProvider(declaredProvider); @@ -325,31 +325,31 @@ public final class SkylarkRuleConfiguredTargetUtil { } if (!defaultProviderProvidedExplicitly) { - parseDefaultProviderKeys(oldStyleProviders, context, builder); + parseDefaultProviderFields(oldStyleProviders, context, builder); } - for (String key : oldStyleProviders.getKeys()) { - if (DEFAULT_PROVIDER_KEYS.contains(key)) { - // These keys have already been parsed above. + for (String field : oldStyleProviders.getFieldNames()) { + if (DEFAULT_PROVIDER_FIELDS.contains(field)) { + // These fields have already been parsed above. // If a default provider has been provided explicitly then it's an error that they also // occur here. if (defaultProviderProvidedExplicitly) { throw new EvalException( loc, "Provider '" - + key + + field + "' should be specified in DefaultInfo if it's provided explicitly."); } - } else if (key.equals("output_groups")) { - addOutputGroups(oldStyleProviders.getValue(key), loc, builder); - } else if (key.equals("instrumented_files")) { + } else if (field.equals("output_groups")) { + addOutputGroups(oldStyleProviders.getValue(field), loc, builder); + } else if (field.equals("instrumented_files")) { Info insStruct = cast("instrumented_files", oldStyleProviders, Info.class, loc); addInstrumentedFiles(insStruct, context.getRuleContext(), builder); - } else if (isNativeDeclaredProviderWithLegacySkylarkName(oldStyleProviders.getValue(key))) { - builder.addNativeDeclaredProvider((Info) oldStyleProviders.getValue(key)); - } else if (!key.equals("providers")) { + } else if (isNativeDeclaredProviderWithLegacySkylarkName(oldStyleProviders.getValue(field))) { + builder.addNativeDeclaredProvider((Info) oldStyleProviders.getValue(field)); + } else if (!field.equals("providers")) { // We handled providers already. - builder.addSkylarkTransitiveInfo(key, oldStyleProviders.getValue(key), loc); + builder.addSkylarkTransitiveInfo(field, oldStyleProviders.getValue(field), loc); } } } @@ -362,10 +362,10 @@ public final class SkylarkRuleConfiguredTargetUtil { } /** - * Parses keys of (not necessarily a default) provider. If it is an actual default provider, - * throws an {@link EvalException} if there are unknown keys. + * Parses fields of (not necessarily a default) provider. If it is an actual default provider, + * throws an {@link EvalException} if there are unknown fields. */ - private static void parseDefaultProviderKeys( + private static void parseDefaultProviderFields( Info provider, SkylarkRuleContext context, RuleConfiguredTargetBuilder builder) throws EvalException { SkylarkNestedSet files = null; @@ -376,23 +376,23 @@ public final class SkylarkRuleConfiguredTargetUtil { Location loc = provider.getCreationLoc(); - for (String key : provider.getKeys()) { - if (key.equals("files")) { + for (String field : provider.getFieldNames()) { + if (field.equals("files")) { files = cast("files", provider, SkylarkNestedSet.class, Artifact.class, loc); - } else if (key.equals("runfiles")) { + } else if (field.equals("runfiles")) { statelessRunfiles = cast("runfiles", provider, Runfiles.class, loc); - } else if (key.equals("data_runfiles")) { + } else if (field.equals("data_runfiles")) { dataRunfiles = cast("data_runfiles", provider, Runfiles.class, loc); - } else if (key.equals("default_runfiles")) { + } else if (field.equals("default_runfiles")) { defaultRunfiles = cast("default_runfiles", provider, Runfiles.class, loc); - } else if (key.equals("executable")) { + } else if (field.equals("executable")) { executable = cast("executable", provider, Artifact.class, loc); } else if (provider .getProvider() .getKey() .equals(DefaultInfo.PROVIDER.getKey())) { - // Custom keys are not allowed for default providers - throw new EvalException(loc, "Invalid key for default provider: " + key); + // Custom fields are not allowed for default providers + throw new EvalException(loc, "Invalid field for default provider: " + field); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java index 1bcc46c5ed..3f8a54a71b 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java @@ -366,7 +366,7 @@ public final class SkylarkRuleContext implements SkylarkValue { } @Override - public ImmutableCollection<String> getKeys() throws EvalException { + public ImmutableCollection<String> getFieldNames() throws EvalException { checkMutable(); ImmutableList.Builder<String> result = ImmutableList.builder(); if (context.isExecutable() && executableCreated) { @@ -391,7 +391,7 @@ public final class SkylarkRuleContext implements SkylarkValue { @Nullable @Override - public String errorMessage(String name) { + public String getErrorMessageForUnknownField(String name) { return String.format( "No attribute '%s' in outputs. Make sure you declared a rule output with this name.", name); @@ -407,16 +407,16 @@ public final class SkylarkRuleContext implements SkylarkValue { } boolean first = true; printer.append("ctx.outputs("); - // Sort by key to ensure deterministic output. + // Sort by field name to ensure deterministic output. try { - for (String key : Ordering.natural().sortedCopy(getKeys())) { + for (String field : Ordering.natural().sortedCopy(getFieldNames())) { if (!first) { printer.append(", "); } first = false; - printer.append(key); + printer.append(field); printer.append(" = "); - printer.repr(getValue(key)); + printer.repr(getValue(field)); } printer.append(")"); } catch (EvalException e) { |