Aspects can get information from their base rule.
--
MOS_MIGRATED_REVID=102126786
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 7d17a98..02b4f3e 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
@@ -137,4 +137,18 @@
assertThat(a.getProvider(TestAspects.RuleInfo.class).getData())
.containsExactly("aspect //a:b", "rule //a:a");
}
+
+ @Test
+ public void informationFromBaseRulePassedToAspect() throws Exception {
+ setRules(new TestAspects.BaseRule(), new TestAspects.HonestRule(),
+ new TestAspects.AspectRequiringProviderRule());
+
+ pkg("a",
+ "aspect_requiring_provider(name='a', foo=[':b'], baz='hello')",
+ "honest(name='b', foo=[])");
+
+ ConfiguredTarget a = getConfiguredTarget("//a:a");
+ assertThat(a.getProvider(TestAspects.RuleInfo.class).getData())
+ .containsExactly("rule //a:a", "aspect //a:b data hello");
+ }
}