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
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
index 4861ace..7d17a98 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
@@ -124,4 +124,17 @@
}
assertContainsEvent("Aspect error");
}
+
+ @Test
+ public void sameTargetInDifferentAttributes() throws Exception {
+ setRules(new TestAspects.BaseRule(), new TestAspects.AspectRequiringRule(),
+ new TestAspects.SimpleRule());
+ pkg("a",
+ "aspect(name='a', foo=[':b'], bar=[':b'])",
+ "aspect(name='b', foo=[])");
+
+ ConfiguredTarget a = getConfiguredTarget("//a:a");
+ assertThat(a.getProvider(TestAspects.RuleInfo.class).getData())
+ .containsExactly("aspect //a:b", "rule //a:a");
+ }
}