Add cc transitive headers to ide-resolve output group

Both source and generated hdrs are included in the output group.
Might be cleaner to only include generated headers -- perhaps by
adding a new field to CppCompilationContext. This solution seems
lighter-weight, however.

--
MOS_MIGRATED_REVID=126725901
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
index feddc68..a7161f8 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
@@ -341,7 +341,7 @@
         ruleContext.registerAction(
             makePackageManifestAction(ruleContext,
                 packageManifest,
-                getJavaSourcefForPackageManifest(ruleContext)));
+                getJavaSourceForPackageManifest(ruleContext)));
       }
 
       JavaRuleIdeInfo javaRuleIdeInfo = makeJavaRuleIdeInfo(
@@ -432,7 +432,7 @@
 
   @Nullable private static Artifact createPackageManifest(ConfiguredTarget base,
       RuleContext ruleContext) {
-    Collection<Artifact> sourceFiles = getJavaSourcefForPackageManifest(ruleContext);
+    Collection<Artifact> sourceFiles = getJavaSourceForPackageManifest(ruleContext);
     if (sourceFiles.isEmpty()) {
       return null;
     }
@@ -646,6 +646,8 @@
       builder.addSource(makeArtifactLocation(sourceFile));
     }
 
+    ideResolveArtifacts.addTransitive(cppCompilationContext.getDeclaredIncludeSrcs());
+
     builder.addAllRuleInclude(getIncludes(ruleContext));
     builder.addAllRuleDefine(getDefines(ruleContext));
     builder.addAllRuleCopt(getCopts(ruleContext));
@@ -768,7 +770,7 @@
     }
   }
 
-  private static Collection<Artifact> getJavaSourcefForPackageManifest(RuleContext ruleContext) {
+  private static Collection<Artifact> getJavaSourceForPackageManifest(RuleContext ruleContext) {
     Collection<Artifact> srcs = getSources(ruleContext);
     List<Artifact> javaSrcs = Lists.newArrayList();
     for (Artifact src : srcs) {
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
index 7000ed4..998ec25 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
@@ -1141,7 +1141,7 @@
 
     assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJarsList()).isEmpty();
 
-    assertThat(getIdeResolveFiles()).isEmpty();
+    assertThat(getIdeResolveFiles()).containsExactly("com/google/example/simple/simple.h");
   }
 
   @Test
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java
index 16c2657..0d3a5de 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java
@@ -252,6 +252,9 @@
     NestedSet<Artifact> artifacts = outputGroupProvider.getOutputGroup(outputGroup);
 
     for (Artifact artifact : artifacts) {
+      if (artifact.isSourceArtifact()) {
+        continue;
+      }
       assertWithMessage("Artifact %s has no generating action", artifact)
           .that(getGeneratingAction(artifact))
           .isNotNull();
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl b/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
index c3a6204..d3f27d2 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
@@ -228,7 +228,7 @@
       transitive_define = cc_provider.defines,
       transitive_system_include_directory = cc_provider.system_include_directories,
   )
-  ide_resolve_files = set()
+  ide_resolve_files = cc_provider.transitive_headers
   return (c_rule_ide_info, ide_resolve_files)
 
 def build_c_toolchain_ide_info(target, ctx):