aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Marian Lobur <loburm@google.com>2015-05-12 14:42:01 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-05-15 09:35:07 +0000
commit2099da0a6a810e151e77bff88ed14ee386faee6f (patch)
tree912bafa3a78974c7ea0bb9b1d8bc329022bee20a /src/main/java/com/google/devtools/build/lib
parent9e7e627ce2ad2a3305019c95f8f0c8f583648804 (diff)
We are trying to merge same copies of the aspect, when target is declared in different attributes, to which we have attached aspect.
-- MOS_MIGRATED_REVID=93412457
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java5
1 files changed, 5 insertions, 0 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 731f47985b..04810eef4d 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
@@ -275,6 +275,11 @@ final class ConfiguredTargetFunction implements SkyFunction {
for (Dependency dep : deps) {
SkyKey depKey = TO_KEYS.apply(dep);
+ // If the same target was declared in different attributes of rule, we should not process it
+ // twice.
+ if (result.containsKey(depKey)) {
+ continue;
+ }
ConfiguredTarget depConfiguredTarget = configuredTargetMap.get(depKey);
for (Class<? extends ConfiguredAspectFactory> depAspect : dep.getAspects()) {
if (!aspectMatchesConfiguredTarget(depConfiguredTarget, depAspect)) {