diff options
author | 2015-11-11 22:34:05 +0000 | |
---|---|---|
committer | 2015-11-12 09:01:58 +0000 | |
commit | 3f241a4869370f124edc764a4f81cd8a35da7ad1 (patch) | |
tree | b908f3557686e6de0dd306630fc0c91809b6434c /src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java | |
parent | fab4b888b4d0739e9269ecc0a6545e35fa185f66 (diff) |
When determining a dep's dynamic configuration, apply the
configuration transition *before* trimming the options. This
is because the transition may read fragments that aren't
in the dep itself.
--
MOS_MIGRATED_REVID=107624186
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index 76ac0f8665..d706363952 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java @@ -403,15 +403,15 @@ final class ConfiguredTargetFunction implements SkyFunction { Verify.verify(transition == Attribute.ConfigurationTransition.NONE || transition instanceof PatchTransition); BuildOptions fromOptions = ctgOptions; - if (!sameFragments) { - // TODO(bazel-team): pre-compute getOptionsClasses in the constructor. - fromOptions = fromOptions.trim(BuildConfiguration.getOptionsClasses( - transitiveDepInfo.getTransitiveConfigFragments(), ruleClassProvider)); - } // TODO(bazel-team): safety-check that the below call never mutates fromOptions. toOptions = transition == Attribute.ConfigurationTransition.NONE ? fromOptions : ((PatchTransition) transition).apply(fromOptions); + if (!sameFragments) { + // TODO(bazel-team): pre-compute getOptionsClasses in the constructor. + toOptions = toOptions.trim(BuildConfiguration.getOptionsClasses( + transitiveDepInfo.getTransitiveConfigFragments(), ruleClassProvider)); + } transitionsMap.put(transitionKey, toOptions); } |