aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/DefaultInfo.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java58
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java12
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) {