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");
+  }
 }