aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java
index 6aa27b22d2..f1a2329403 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitiveOptionDetails.java
@@ -17,11 +17,10 @@ package com.google.devtools.build.lib.analysis.config;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.common.options.OptionDefinition;
-import com.google.devtools.common.options.OptionDefinition.NotAnOptionException;
import com.google.devtools.common.options.OptionMetadataTag;
import com.google.devtools.common.options.OptionsBase;
+import com.google.devtools.common.options.OptionsParser;
import java.io.Serializable;
-import java.lang.reflect.Field;
import java.util.Map;
import javax.annotation.Nullable;
@@ -43,20 +42,15 @@ public final class TransitiveOptionDetails implements Serializable {
ImmutableMap.Builder<String, OptionDetails> map = ImmutableMap.builder();
try {
for (OptionsBase options : buildOptions) {
- for (Field field : options.getClass().getFields()) {
- OptionDefinition optionDefinition;
- try {
- optionDefinition = OptionDefinition.extractOptionDefinition(field);
- } catch (NotAnOptionException e) {
- // Skip non @Option fields.
- continue;
- }
+ ImmutableList<OptionDefinition> optionDefinitions =
+ OptionsParser.getOptionDefinitions(options.getClass());
+ for (OptionDefinition optionDefinition : optionDefinitions) {
if (ImmutableList.copyOf(optionDefinition.getOptionMetadataTags())
.contains(OptionMetadataTag.INTERNAL)) {
// ignore internal options
continue;
}
- Object value = field.get(options);
+ Object value = optionDefinition.getField().get(options);
if (value == null) {
if (lateBoundDefaults.containsKey(optionDefinition.getOptionName())) {
value = lateBoundDefaults.get(optionDefinition.getOptionName());