diff options
author | 2018-01-24 12:13:24 -0800 | |
---|---|---|
committer | 2018-01-24 12:16:55 -0800 | |
commit | c619e7881559f774d16f84261ab39906a3ac8c60 (patch) | |
tree | 9d36566be8579e5d0dc1de40e3f85c635d10b31d /src/main/java/com/google/devtools/build/lib/skyframe | |
parent | be757ae8142808bae8f189421e38fc8c8cd060ae (diff) |
Remove some references to configuredTarget.getTarget() by getting the target from package.
PiperOrigin-RevId: 183121812
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java index 3ae57a524e..27d9a3dd1f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java @@ -29,9 +29,12 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationExcepti import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.BuildType; +import com.google.devtools.build.lib.packages.NoSuchTargetException; +import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleClassProvider; +import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.skyframe.SkyframeActionExecutor.ConflictException; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.util.OrderedSetMultimap; @@ -87,8 +90,18 @@ public class PostConfiguredTargetFunction implements SkyFunction { } ConfiguredTarget ct = ctValue.getConfiguredTarget(); - TargetAndConfiguration ctgValue = - new TargetAndConfiguration(ct.getTarget(), ct.getConfiguration()); + + Package targetPkg = + ((PackageValue) env.getValue(PackageValue.key(ct.getLabel().getPackageIdentifier()))) + .getPackage(); + Target target = null; + try { + target = targetPkg.getTarget(ct.getLabel().getName()); + } catch (NoSuchTargetException e) { + throw new IllegalStateException("Name already verified", e); + } + + TargetAndConfiguration ctgValue = new TargetAndConfiguration(target, ct.getConfiguration()); ImmutableMap<Label, ConfigMatchingProvider> configConditions = getConfigurableAttributeConditions(ctgValue, env); |