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");
+  }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java
index 4d0fa69..5438b43 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java
@@ -269,6 +269,8 @@
       return builder
           .add(attr("foo", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE)
               .aspect(SimpleAspect.class))
+          .add(attr("bar", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE)
+              .aspect(SimpleAspect.class))
           .build();
 
     }