Rename android_studio_ide_info proto and members.

android_studio_ide_info -> intellij_ide_info
RuleIdeInfo -> TargetIdeInfo
Drop "rule" from all sub-ide infos (eg. JavaRuleIdeInfo -> JavaIdeInfo)

--
MOS_MIGRATED_REVID=140438983
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 3da2115..619196e 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -965,7 +965,7 @@
         ":vfs",
         "//src/main/java/com/google/devtools/build/lib/actions",
         "//src/main/java/com/google/devtools/build/lib/rules/cpp",
-        "//src/main/protobuf:android_studio_ide_info_java_proto",
+        "//src/main/protobuf:intellij_ide_info_java_proto",
         "//third_party:guava",
         "//third_party:jsr305",
         "//third_party/protobuf",
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 8bef4d6..ea7ae87 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
@@ -47,16 +47,6 @@
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo;
 import com.google.devtools.build.lib.packages.AspectDefinition;
 import com.google.devtools.build.lib.packages.AspectParameters;
 import com.google.devtools.build.lib.packages.BuildType;
@@ -77,6 +67,16 @@
 import com.google.devtools.build.lib.rules.java.JavaToolchainProvider;
 import com.google.devtools.build.lib.syntax.Type;
 import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.AndroidIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.ArtifactLocation;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.CIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.CToolchainIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.JavaIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.JavaToolchainIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.LibraryArtifact;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.PyIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.TargetIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.TestInfo;
 import com.google.protobuf.MessageLite;
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -323,7 +323,7 @@
     providerBuilder.ideInfoTextFilesBuilder().add(ideInfoTextFile);
     NestedSetBuilder<Artifact> ideResolveArtifacts = providerBuilder.ideResolveFilesBuilder();
 
-    RuleIdeInfo.Builder outputBuilder = RuleIdeInfo.newBuilder();
+    TargetIdeInfo.Builder outputBuilder = TargetIdeInfo.newBuilder();
 
     outputBuilder.setLabel(base.getLabel().toString());
 
@@ -336,18 +336,18 @@
     JavaRuleOutputJarsProvider outputJarsProvider =
         base.getProvider(JavaRuleOutputJarsProvider.class);
     if (outputJarsProvider != null && !androidStudioInfoSemantics.suppressJavaRuleInfo(base)) {
-      JavaRuleIdeInfo javaRuleIdeInfo =
-          makeJavaRuleIdeInfo(base, ruleContext, outputJarsProvider, providerBuilder);
-      outputBuilder.setJavaRuleIdeInfo(javaRuleIdeInfo);
+      JavaIdeInfo javaIdeInfo =
+          makeJavaIdeInfo(base, ruleContext, outputJarsProvider, providerBuilder);
+      outputBuilder.setJavaIdeInfo(javaIdeInfo);
     }
 
     // C rules
     if (isCppRule(base)) {
       CppCompilationContext cppCompilationContext = base.getProvider(CppCompilationContext.class);
       if (cppCompilationContext != null) {
-        CRuleIdeInfo cRuleIdeInfo =
-            makeCRuleIdeInfo(base, ruleContext, cppCompilationContext, ideResolveArtifacts);
-        outputBuilder.setCRuleIdeInfo(cRuleIdeInfo);
+        CIdeInfo cIdeInfo =
+            makeCIdeInfo(base, ruleContext, cppCompilationContext, ideResolveArtifacts);
+        outputBuilder.setCIdeInfo(cIdeInfo);
       }
     }
 
@@ -366,13 +366,13 @@
     // Android rules
     AndroidIdeInfoProvider androidIdeInfoProvider = base.getProvider(AndroidIdeInfoProvider.class);
     if (androidIdeInfoProvider != null) {
-      outputBuilder.setAndroidRuleIdeInfo(
-          makeAndroidRuleIdeInfo(androidIdeInfoProvider, dependenciesResult, ideResolveArtifacts));
+      outputBuilder.setAndroidIdeInfo(
+          makeAndroidIdeInfo(androidIdeInfoProvider, dependenciesResult, ideResolveArtifacts));
     }
 
     // Python rules
     if (isPythonRule(base)) {
-      outputBuilder.setPyRuleIdeInfo(makePyRuleIdeInfo(base, ruleContext, ideResolveArtifacts));
+      outputBuilder.setPyIdeInfo(makePyIdeInfo(base, ruleContext, ideResolveArtifacts));
     }
 
     // Test rules
@@ -405,12 +405,12 @@
     outputBuilder.addAllRuntimeDeps(transform(dependenciesResult.runtimeDeps, LABEL_TO_STRING));
     outputBuilder.addAllTags(base.getTarget().getAssociatedRule().getRuleTags());
 
-    final RuleIdeInfo ruleIdeInfo = outputBuilder.build();
+    final TargetIdeInfo targetIdeInfo = outputBuilder.build();
 
     ruleContext.registerAction(
-        makeProtoWriteAction(ruleContext.getActionOwner(), ruleIdeInfo, ideInfoFile));
+        makeProtoWriteAction(ruleContext.getActionOwner(), targetIdeInfo, ideInfoFile));
     ruleContext.registerAction(
-        makeProtoTextWriteAction(ruleContext.getActionOwner(), ruleIdeInfo, ideInfoTextFile));
+        makeProtoTextWriteAction(ruleContext.getActionOwner(), targetIdeInfo, ideInfoTextFile));
 
     return provider;
   }
@@ -524,11 +524,11 @@
     return ruleContext.getAnalysisEnvironment().getDerivedArtifact(derivedFilePath, binDirectory);
   }
 
-  private static AndroidRuleIdeInfo makeAndroidRuleIdeInfo(
+  private static AndroidIdeInfo makeAndroidIdeInfo(
       AndroidIdeInfoProvider androidIdeInfoProvider,
       DependenciesResult dependenciesResult,
       NestedSetBuilder<Artifact> ideResolveArtifacts) {
-    AndroidRuleIdeInfo.Builder builder = AndroidRuleIdeInfo.newBuilder();
+    AndroidIdeInfo.Builder builder = AndroidIdeInfo.newBuilder();
     if (androidIdeInfoProvider.getSignedApk() != null) {
       builder.setApk(makeArtifactLocation(androidIdeInfoProvider.getSignedApk()));
     }
@@ -646,13 +646,13 @@
         .build();
   }
 
-  private JavaRuleIdeInfo makeJavaRuleIdeInfo(
+  private JavaIdeInfo makeJavaIdeInfo(
       ConfiguredTarget base,
       RuleContext ruleContext,
       JavaRuleOutputJarsProvider outputJarsProvider,
       AndroidStudioInfoFilesProvider.Builder providerBuilder) {
     NestedSetBuilder<Artifact> ideResolveArtifacts = providerBuilder.ideResolveFilesBuilder();
-    JavaRuleIdeInfo.Builder builder = JavaRuleIdeInfo.newBuilder();
+    JavaIdeInfo.Builder builder = JavaIdeInfo.newBuilder();
 
     List<Artifact> javaSources = Lists.newArrayList();
     List<Artifact> generatedJavaSources = Lists.newArrayList();
@@ -728,12 +728,12 @@
     return builder.build();
   }
 
-  private CRuleIdeInfo makeCRuleIdeInfo(
+  private CIdeInfo makeCIdeInfo(
       ConfiguredTarget base,
       RuleContext ruleContext,
       CppCompilationContext cppCompilationContext,
       NestedSetBuilder<Artifact> ideResolveArtifacts) {
-    CRuleIdeInfo.Builder builder = CRuleIdeInfo.newBuilder();
+    CIdeInfo.Builder builder = CIdeInfo.newBuilder();
 
     Collection<Artifact> sourceFiles = getSources(ruleContext);
     for (Artifact sourceFile : sourceFiles) {
@@ -742,9 +742,9 @@
 
     ideResolveArtifacts.addTransitive(cppCompilationContext.getDeclaredIncludeSrcs());
 
-    builder.addAllRuleInclude(getIncludes(ruleContext));
-    builder.addAllRuleDefine(getDefines(ruleContext));
-    builder.addAllRuleCopt(getCopts(ruleContext));
+    builder.addAllTargetInclude(getIncludes(ruleContext));
+    builder.addAllTargetDefine(getDefines(ruleContext));
+    builder.addAllTargetCopt(getCopts(ruleContext));
 
     // Get information about from the transitive closure
     ImmutableList<PathFragment> transitiveIncludeDirectories =
@@ -798,11 +798,11 @@
     return builder.build();
   }
 
-  private static PyRuleIdeInfo makePyRuleIdeInfo(
+  private static PyIdeInfo makePyIdeInfo(
       ConfiguredTarget base,
       RuleContext ruleContext,
       NestedSetBuilder<Artifact> ideResolveArtifacts) {
-    PyRuleIdeInfo.Builder builder = PyRuleIdeInfo.newBuilder();
+    PyIdeInfo.Builder builder = PyIdeInfo.newBuilder();
 
     Collection<Artifact> sourceFiles = getSources(ruleContext);
     for (Artifact sourceFile : sourceFiles) {
@@ -820,7 +820,7 @@
   }
 
   private static void collectJarsFromOutputJarsProvider(
-      JavaRuleIdeInfo.Builder builder,
+      JavaIdeInfo.Builder builder,
       NestedSetBuilder<Artifact> ideResolveArtifacts,
       JavaRuleOutputJarsProvider outputJarsProvider) {
     for (OutputJar outputJar : outputJarsProvider.getOutputJars()) {
@@ -864,7 +864,7 @@
   }
 
   private static void collectGenJars(
-      JavaRuleIdeInfo.Builder builder,
+      JavaIdeInfo.Builder builder,
       NestedSetBuilder<Artifact> ideResolveArtifacts,
       JavaGenJarsProvider genJarsProvider) {
     LibraryArtifact.Builder genjarsBuilder = LibraryArtifact.newBuilder();
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoSemantics.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoSemantics.java
index 3ebc2e9..b40254c 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoSemantics.java
@@ -19,9 +19,9 @@
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.ideinfo.AndroidStudioInfoAspect.PrerequisiteAttr;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo;
 import com.google.devtools.build.lib.rules.cpp.CppCompilationContext;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.CIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.TargetIdeInfo;
 
 /**
  * Methods to handle differences between blaze and bazel in the {@link AndroidStudioInfoAspect}.
@@ -31,7 +31,7 @@
   void augmentPrerequisiteAttrs(ImmutableList.Builder<PrerequisiteAttr> builder);
 
   void augmentRuleInfo(
-      RuleIdeInfo.Builder builder,
+      TargetIdeInfo.Builder builder,
       ConfiguredTarget base,
       RuleContext ruleContext,
       NestedSetBuilder<Artifact> ideResolveArtifacts);
@@ -39,7 +39,7 @@
   boolean suppressJavaRuleInfo(ConfiguredTarget base);
 
   void augmentCppRuleInfo(
-      CRuleIdeInfo.Builder builder,
+      CIdeInfo.Builder builder,
       ConfiguredTarget base,
       RuleContext ruleContext,
       CppCompilationContext cppCompilationContext,
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/BazelAndroidStudioInfoSemantics.java b/src/main/java/com/google/devtools/build/lib/ideinfo/BazelAndroidStudioInfoSemantics.java
index 27f47f2..4c851ad 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/BazelAndroidStudioInfoSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/BazelAndroidStudioInfoSemantics.java
@@ -19,9 +19,9 @@
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.ideinfo.AndroidStudioInfoAspect.PrerequisiteAttr;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo;
 import com.google.devtools.build.lib.rules.cpp.CppCompilationContext;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.CIdeInfo.Builder;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.TargetIdeInfo;
 
 /**
  * Bazel specific semantics for the {@link AndroidStudioInfoAspect} aspect.
@@ -42,10 +42,11 @@
   }
 
   @Override
-  public void augmentRuleInfo(RuleIdeInfo.Builder builder, ConfiguredTarget base,
+  public void augmentRuleInfo(
+      TargetIdeInfo.Builder builder,
+      ConfiguredTarget base,
       RuleContext ruleContext,
-      NestedSetBuilder<Artifact> ideResolveArtifacts) {
-  }
+      NestedSetBuilder<Artifact> ideResolveArtifacts) {}
 
   @Override
   public boolean suppressJavaRuleInfo(ConfiguredTarget base) {
diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD
index 4ddbb9b..8aae5b3 100644
--- a/src/main/protobuf/BUILD
+++ b/src/main/protobuf/BUILD
@@ -10,7 +10,7 @@
     "java_compilation",
     "crosstool_config",
     "extra_actions_base",
-    "android_studio_ide_info",
+    "intellij_ide_info",
     "package_manifest",
     "test_status",
     "plmerge",
diff --git a/src/main/protobuf/android_studio_ide_info.proto b/src/main/protobuf/intellij_ide_info.proto
similarity index 86%
rename from src/main/protobuf/android_studio_ide_info.proto
rename to src/main/protobuf/intellij_ide_info.proto
index aa9f83d..71fcc22 100644
--- a/src/main/protobuf/android_studio_ide_info.proto
+++ b/src/main/protobuf/intellij_ide_info.proto
@@ -17,8 +17,7 @@
 package blaze;
 
 
-option java_package = "com.google.devtools.build.lib.ideinfo.androidstudio";
-
+option java_package = "com.google.devtools.intellij.ideinfo";
 
 message ArtifactLocation {
   string relative_path = 2;
@@ -34,7 +33,7 @@
   ArtifactLocation source_jar = 3;
 }
 
-message JavaRuleIdeInfo {
+message JavaIdeInfo {
   repeated LibraryArtifact jars = 1;
   repeated LibraryArtifact generated_jars = 2;
   ArtifactLocation package_manifest = 3;
@@ -43,7 +42,7 @@
   LibraryArtifact filtered_gen_jar = 6;
 }
 
-message CRuleIdeInfo {
+message CIdeInfo {
   repeated ArtifactLocation source = 1;
 
   repeated string transitive_include_directory = 3;
@@ -51,12 +50,12 @@
   repeated string transitive_define = 5;
   repeated string transitive_system_include_directory = 6;
 
-  repeated string rule_copt = 7;
-  repeated string rule_define = 8;
-  repeated string rule_include = 9;
+  repeated string target_copt = 7;
+  repeated string target_define = 8;
+  repeated string target_include = 9;
 }
 
-message AndroidRuleIdeInfo {
+message AndroidIdeInfo {
   repeated ArtifactLocation resources = 1;
   ArtifactLocation apk = 3;
   repeated ArtifactLocation dependency_apk = 4;
@@ -70,7 +69,7 @@
   string idl_import_root = 13;
 }
 
-message PyRuleIdeInfo {
+message PyIdeInfo {
   repeated ArtifactLocation sources = 1;
 }
 
@@ -110,20 +109,20 @@
   string target_version = 2;
 }
 
-message RuleIdeInfo {
+message TargetIdeInfo {
   string label = 1;
   repeated string dependencies = 4;
 
   // kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
-  JavaRuleIdeInfo java_rule_ide_info = 7;
-  AndroidRuleIdeInfo android_rule_ide_info = 8;
+  JavaIdeInfo java_ide_info = 7;
+  AndroidIdeInfo android_ide_info = 8;
 
   repeated string tags = 9;
   repeated string runtime_deps = 10;
 
   ArtifactLocation build_file_artifact_location = 11;
 
-  CRuleIdeInfo c_rule_ide_info = 12;
+  CIdeInfo c_ide_info = 12;
   CToolchainIdeInfo c_toolchain_ide_info = 13;
 
   string kind_string = 14;
@@ -133,5 +132,5 @@
   ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;
   JavaToolchainIdeInfo java_toolchain_ide_info = 17;
 
-  PyRuleIdeInfo py_rule_ide_info = 18;
+  PyIdeInfo py_ide_info = 18;
 }
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index 23106e9..778fe86 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -679,7 +679,7 @@
         "//src/main/java/com/google/devtools/build/lib:packages",
         "//src/main/java/com/google/devtools/build/lib:vfs",
         "//src/main/java/com/google/devtools/build/lib/actions",
-        "//src/main/protobuf:android_studio_ide_info_java_proto",
+        "//src/main/protobuf:intellij_ide_info_java_proto",
         "//third_party:guava",
         "//third_party:guava-testlib",
         "//third_party:jsr305",
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 98ac490..6d157ed 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
@@ -21,11 +21,11 @@
 import com.google.common.collect.Iterables;
 import com.google.common.collect.ObjectArrays;
 import com.google.devtools.build.lib.cmdline.RepositoryName;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.ArtifactLocation;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.CIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.CToolchainIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.JavaIdeInfo;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.TargetIdeInfo;
 import com.google.protobuf.ByteString;
 import com.google.protobuf.ProtocolStringList;
 import java.nio.file.Paths;
@@ -53,18 +53,17 @@
         "    name = 'simple',",
         "    srcs = ['simple/Simple.java']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
     assertThat(location.getIsSource()).isTrue();
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("java_library");
-    assertThat(relativePathsForJavaSourcesOf(ruleIdeInfo))
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("java_library");
+    assertThat(relativePathsForJavaSourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/Simple.java");
-    assertThat(
-            transform(ruleIdeInfo.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    assertThat(transform(targetIdeInfo.getJavaIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString(
                 "com/google/example", "libsimple.jar", "libsimple-hjar.jar", "libsimple-src.jar"));
@@ -74,7 +73,7 @@
             "com/google/example/libsimple.jar",
             "com/google/example/libsimple-hjar.jar",
             "com/google/example/libsimple-src.jar");
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath())
+    assertThat(targetIdeInfo.getJavaIdeInfo().getJdeps().getRelativePath())
         .isEqualTo("com/google/example/libsimple.jdeps");
   }
 
@@ -86,11 +85,11 @@
         "    name = 'simple',",
         "    srcs = ['simple/Simple.java']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
 
-    ArtifactLocation packageManifest = ruleIdeInfo.getJavaRuleIdeInfo().getPackageManifest();
+    ArtifactLocation packageManifest = targetIdeInfo.getJavaIdeInfo().getPackageManifest();
     assertNotNull(packageManifest);
 
     if (isNativeTest()) {
@@ -114,10 +113,10 @@
         "    name = 'simple',",
         "    srcs = [':gen_sources']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().hasPackageManifest()).isFalse();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    assertThat(targetIdeInfo.getJavaIdeInfo().hasPackageManifest()).isFalse();
   }
 
   @Test
@@ -128,10 +127,10 @@
         "    name = 'simple',",
         "    srcs = ['Test.java']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().hasFilteredGenJar()).isFalse();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    assertThat(targetIdeInfo.getJavaIdeInfo().hasFilteredGenJar()).isFalse();
   }
 
   @Test
@@ -147,10 +146,10 @@
         "    name = 'simple',",
         "    srcs = [':gen_sources']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().hasFilteredGenJar()).isFalse();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    assertThat(targetIdeInfo.getJavaIdeInfo().hasFilteredGenJar()).isFalse();
   }
 
   @Test
@@ -171,13 +170,13 @@
         "    name = 'lib',",
         "    srcs = [':gen_sources', ':gen_srcjar', 'Test.java']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    RuleIdeInfo ruleIdeInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().hasFilteredGenJar()).isTrue();
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getFilteredGenJar().getJar().getRelativePath())
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    assertThat(targetIdeInfo.getJavaIdeInfo().hasFilteredGenJar()).isTrue();
+    assertThat(targetIdeInfo.getJavaIdeInfo().getFilteredGenJar().getJar().getRelativePath())
         .isEqualTo("com/google/example/lib-filtered-gen.jar");
-    assertThat(
-            ruleIdeInfo.getJavaRuleIdeInfo().getFilteredGenJar().getSourceJar().getRelativePath())
+    assertThat(targetIdeInfo.getJavaIdeInfo().getFilteredGenJar().getSourceJar().getRelativePath())
         .isEqualTo("com/google/example/lib-filtered-gen-src.jar");
   }
 
@@ -195,15 +194,15 @@
         "    deps = [':simple']",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:complex");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:complex");
 
-    getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    RuleIdeInfo complexRuleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:complex", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    TargetIdeInfo complexTarget =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:complex", targetIdeInfos);
 
-    assertThat(relativePathsForJavaSourcesOf(complexRuleIdeInfo))
+    assertThat(relativePathsForJavaSourcesOf(complexTarget))
         .containsExactly("com/google/example/complex/Complex.java");
-    assertThat(complexRuleIdeInfo.getDependenciesList()).contains("//com/google/example:simple");
+    assertThat(complexTarget.getDependenciesList()).contains("//com/google/example:simple");
   }
 
   @Test
@@ -224,18 +223,17 @@
         "    srcs = ['extracomplex/ExtraComplex.java'],",
         "    deps = [':complex']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:extracomplex");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:extracomplex");
 
-    getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    getRuleInfoAndVerifyLabel("//com/google/example:complex", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:complex", targetIdeInfos);
 
-    RuleIdeInfo extraComplexRuleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:extracomplex", ruleIdeInfos);
+    TargetIdeInfo extraComplexTarget =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:extracomplex", targetIdeInfos);
 
-    assertThat(relativePathsForJavaSourcesOf(extraComplexRuleIdeInfo))
+    assertThat(relativePathsForJavaSourcesOf(extraComplexTarget))
         .containsExactly("com/google/example/extracomplex/ExtraComplex.java");
-    assertThat(extraComplexRuleIdeInfo.getDependenciesList())
-        .contains("//com/google/example:complex");
+    assertThat(extraComplexTarget.getDependenciesList()).contains("//com/google/example:complex");
 
     assertThat(getIdeResolveFiles())
         .containsExactly(
@@ -273,18 +271,18 @@
         "    srcs = ['extracomplex/ExtraComplex.java'],",
         "    deps = [':complex', ':complex1']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:extracomplex");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:extracomplex");
 
-    getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    getRuleInfoAndVerifyLabel("//com/google/example:complex", ruleIdeInfos);
-    getRuleInfoAndVerifyLabel("//com/google/example:complex1", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:complex", targetIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:complex1", targetIdeInfos);
 
-    RuleIdeInfo extraComplexRuleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:extracomplex", ruleIdeInfos);
+    TargetIdeInfo extraComplexTarget =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:extracomplex", targetIdeInfos);
 
-    assertThat(relativePathsForJavaSourcesOf(extraComplexRuleIdeInfo))
+    assertThat(relativePathsForJavaSourcesOf(extraComplexTarget))
         .containsExactly("com/google/example/extracomplex/ExtraComplex.java");
-    assertThat(extraComplexRuleIdeInfo.getDependenciesList())
+    assertThat(extraComplexTarget.getDependenciesList())
         .containsAllOf("//com/google/example:complex", "//com/google/example:complex1");
   }
 
@@ -306,19 +304,19 @@
         "    srcs = ['extracomplex/ExtraComplex.java'],",
         "    deps = [':complex']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:extracomplex");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:extracomplex");
 
-    getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    getRuleInfoAndVerifyLabel("//com/google/example:complex", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:complex", targetIdeInfos);
 
-    RuleIdeInfo complexRuleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:complex", ruleIdeInfos);
-    RuleIdeInfo extraComplexRuleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:extracomplex", ruleIdeInfos);
+    TargetIdeInfo complexTarget =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:complex", targetIdeInfos);
+    TargetIdeInfo extraComplexTarget =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:extracomplex", targetIdeInfos);
 
-    assertThat(complexRuleIdeInfo.getDependenciesList()).contains("//com/google/example:simple");
+    assertThat(complexTarget.getDependenciesList()).contains("//com/google/example:simple");
 
-    assertThat(extraComplexRuleIdeInfo.getDependenciesList())
+    assertThat(extraComplexTarget.getDependenciesList())
         .containsAllOf("//com/google/example:simple", "//com/google/example:complex");
     assertThat(getIdeResolveFiles())
         .containsExactly(
@@ -356,18 +354,18 @@
         "    srcs = ['megacomplex/MegaComplex.java'],",
         "    deps = [':extracomplex'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:megacomplex");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:megacomplex");
 
-    getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    getRuleInfoAndVerifyLabel("//com/google/example:complex", ruleIdeInfos);
-    getRuleInfoAndVerifyLabel("//com/google/example:extracomplex", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:complex", targetIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:extracomplex", targetIdeInfos);
 
-    RuleIdeInfo megaComplexRuleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:megacomplex", ruleIdeInfos);
+    TargetIdeInfo megaComplexTarget =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:megacomplex", targetIdeInfos);
 
-    assertThat(relativePathsForJavaSourcesOf(megaComplexRuleIdeInfo))
+    assertThat(relativePathsForJavaSourcesOf(megaComplexTarget))
         .containsExactly("com/google/example/megacomplex/MegaComplex.java");
-    assertThat(megaComplexRuleIdeInfo.getDependenciesList())
+    assertThat(megaComplexTarget.getDependenciesList())
         .containsAllOf(
             "//com/google/example:simple",
             "//com/google/example:complex",
@@ -389,16 +387,18 @@
         "   deps = [':imp'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    final RuleIdeInfo libInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    RuleIdeInfo impInfo = getRuleInfoAndVerifyLabel("//com/google/example:imp", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    final TargetIdeInfo libInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    TargetIdeInfo impInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:imp", targetIdeInfos);
 
     assertThat(impInfo.getKindString()).isEqualTo("java_import");
     assertThat(libInfo.getDependenciesList()).contains("//com/google/example:imp");
 
-    JavaRuleIdeInfo javaRuleIdeInfo = impInfo.getJavaRuleIdeInfo();
-    assertThat(javaRuleIdeInfo).isNotNull();
-    assertThat(transform(javaRuleIdeInfo.getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    JavaIdeInfo javaIdeInfo = impInfo.getJavaIdeInfo();
+    assertThat(javaIdeInfo).isNotNull();
+    assertThat(transform(javaIdeInfo.getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString(
                 "com/google/example",
@@ -441,9 +441,11 @@
         "   deps = [':imp'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    RuleIdeInfo libInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    RuleIdeInfo impInfo = getRuleInfoAndVerifyLabel("//com/google/example:imp", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    TargetIdeInfo libInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    TargetIdeInfo impInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:imp", targetIdeInfos);
 
     assertThat(impInfo.getKindString()).isEqualTo("java_import");
     assertThat(impInfo.getDependenciesList()).contains("//com/google/example:foobar");
@@ -471,12 +473,14 @@
         "   deps = [':imp'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    RuleIdeInfo libInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    RuleIdeInfo impInfo = getRuleInfoAndVerifyLabel("//com/google/example:imp", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    TargetIdeInfo libInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    TargetIdeInfo impInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:imp", targetIdeInfos);
 
-    assertThat(!impInfo.getJavaRuleIdeInfo().hasPackageManifest()).isTrue();
-    assertThat(libInfo.getJavaRuleIdeInfo().hasPackageManifest()).isTrue();
+    assertThat(!impInfo.getJavaIdeInfo().hasPackageManifest()).isTrue();
+    assertThat(libInfo.getJavaIdeInfo().hasPackageManifest()).isTrue();
   }
 
   @Test
@@ -498,7 +502,7 @@
         "   outs = ['gen_srcjar.jar'],",
         "   cmd = '',",
         ")");
-    buildRuleIdeInfo("//com/google/example:imp");
+    buildIdeInfo("//com/google/example:imp");
     assertThat(getIdeResolveFiles())
         .containsExactly(
             "com/google/example/_ijar/imp/com/google/example/gen_jar-ijar.jar",
@@ -520,8 +524,8 @@
         "   exports = [':foobar'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    getRuleInfoAndVerifyLabel("//com/google/example:foobar", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:foobar", targetIdeInfos);
   }
 
   @Test
@@ -538,15 +542,15 @@
         "   size = 'large',",
         "   deps = [':foobar'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos =
-        buildRuleIdeInfo("//java/com/google/example:FooBarTest");
-    RuleIdeInfo testInfo =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:FooBarTest", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos =
+        buildIdeInfo("//java/com/google/example:FooBarTest");
+    TargetIdeInfo testInfo =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:FooBarTest", targetIdeInfos);
     assertThat(testInfo.getKindString()).isEqualTo("java_test");
     assertThat(relativePathsForJavaSourcesOf(testInfo))
         .containsExactly("java/com/google/example/FooBarTest.java");
     assertThat(testInfo.getDependenciesList()).contains("//java/com/google/example:foobar");
-    assertThat(transform(testInfo.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    assertThat(transform(testInfo.getJavaIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString("java/com/google/example", "FooBarTest.jar", null, "FooBarTest-src.jar"));
 
@@ -557,7 +561,7 @@
             "java/com/google/example/libfoobar-src.jar",
             "java/com/google/example/FooBarTest.jar",
             "java/com/google/example/FooBarTest-src.jar");
-    assertThat(testInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath())
+    assertThat(testInfo.getJavaIdeInfo().getJdeps().getRelativePath())
         .isEqualTo("java/com/google/example/FooBarTest.jdeps");
 
     assertThat(testInfo.getTestInfo().getSize()).isEqualTo("large");
@@ -577,16 +581,16 @@
         "   srcs = ['FooBarMain.java'],",
         "   deps = [':foobar'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:foobar-exe");
-    RuleIdeInfo binaryInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:foobar-exe", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:foobar-exe");
+    TargetIdeInfo binaryInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:foobar-exe", targetIdeInfos);
 
     assertThat(binaryInfo.getKindString()).isEqualTo("java_binary");
     assertThat(relativePathsForJavaSourcesOf(binaryInfo))
         .containsExactly("com/google/example/FooBarMain.java");
     assertThat(binaryInfo.getDependenciesList()).contains("//com/google/example:foobar");
 
-    assertThat(transform(binaryInfo.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    assertThat(transform(binaryInfo.getJavaIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString("com/google/example", "foobar-exe.jar", null, "foobar-exe-src.jar"));
 
@@ -597,7 +601,7 @@
             "com/google/example/libfoobar-src.jar",
             "com/google/example/foobar-exe.jar",
             "com/google/example/foobar-exe-src.jar");
-    assertThat(binaryInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath())
+    assertThat(binaryInfo.getJavaIdeInfo().getJdeps().getRelativePath())
         .isEqualTo("com/google/example/foobar-exe.jdeps");
   }
 
@@ -615,15 +619,15 @@
         "    srcs = ['B.java'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:a");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:a");
 
-    List<RuleIdeInfo> javaToolChainInfos = findJavaToolchain(ruleIdeInfos);
+    List<TargetIdeInfo> javaToolChainInfos = findJavaToolchain(targetIdeInfos);
     assertThat(javaToolChainInfos).hasSize(1); // Ensure we don't get one instance per java_library
-    RuleIdeInfo toolChainInfo = Iterables.getOnlyElement(javaToolChainInfos);
+    TargetIdeInfo toolChainInfo = Iterables.getOnlyElement(javaToolChainInfos);
     assertThat(toolChainInfo.getJavaToolchainIdeInfo().getSourceVersion()).isNotEmpty();
     assertThat(toolChainInfo.getJavaToolchainIdeInfo().getTargetVersion()).isNotEmpty();
 
-    RuleIdeInfo a = ruleIdeInfos.get("//com/google/example:a");
+    TargetIdeInfo a = targetIdeInfos.get("//com/google/example:a");
     assertThat(a.getDependenciesList())
         .containsAllOf("//com/google/example:b", toolChainInfo.getLabel());
   }
@@ -637,10 +641,10 @@
         "    srcs = ['A.java'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:a");
-    assertThat(ruleIdeInfos).hasSize(2);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:a");
+    assertThat(targetIdeInfos).hasSize(2);
 
-    List<RuleIdeInfo> javaToolChainInfos = findJavaToolchain(ruleIdeInfos);
+    List<TargetIdeInfo> javaToolChainInfos = findJavaToolchain(targetIdeInfos);
     assertThat(javaToolChainInfos).hasSize(1);
   }
 
@@ -662,26 +666,24 @@
         "  custom_package = 'com.google.example',",
         "  resource_files = ['res/drawable/a.png', 'res/drawable/b.png'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:l");
-    RuleIdeInfo ruleInfo = getRuleInfoAndVerifyLabel("//com/google/example:l", ruleIdeInfos);
-    assertThat(ruleInfo.getKindString()).isEqualTo("android_library");
-    assertThat(relativePathsForJavaSourcesOf(ruleInfo))
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:l");
+    TargetIdeInfo target = getTargetIdeInfoAndVerifyLabel("//com/google/example:l", targetIdeInfos);
+    assertThat(target.getKindString()).isEqualTo("android_library");
+    assertThat(relativePathsForJavaSourcesOf(target))
         .containsExactly("com/google/example/Main.java");
-    assertThat(transform(ruleInfo.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    assertThat(transform(target.getJavaIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString("com/google/example", "libl.jar", "libl-hjar.jar", "libl-src.jar"),
             jarString("com/google/example", "l_resources.jar", null, "l_resources-src.jar"));
-    assertThat(
-            transform(
-                ruleInfo.getAndroidRuleIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH))
+    assertThat(transform(target.getAndroidIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH))
         .containsExactly("com/google/example/res");
-    assertThat(ruleInfo.getAndroidRuleIdeInfo().getManifest().getRelativePath())
+    assertThat(target.getAndroidIdeInfo().getManifest().getRelativePath())
         .isEqualTo("com/google/example/AndroidManifest.xml");
-    assertThat(ruleInfo.getAndroidRuleIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
-    assertThat(LIBRARY_ARTIFACT_TO_STRING.apply(ruleInfo.getAndroidRuleIdeInfo().getResourceJar()))
+    assertThat(target.getAndroidIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
+    assertThat(LIBRARY_ARTIFACT_TO_STRING.apply(target.getAndroidIdeInfo().getResourceJar()))
         .isEqualTo(jarString("com/google/example", "l_resources.jar", null, "l_resources-src.jar"));
 
-    assertThat(ruleInfo.getDependenciesList()).contains("//com/google/example:l1");
+    assertThat(target.getDependenciesList()).contains("//com/google/example:l1");
     assertThat(getIdeResolveFiles())
         .containsExactly(
             "com/google/example/libl.jar",
@@ -693,7 +695,7 @@
             "com/google/example/libl1-src.jar",
             "com/google/example/l1_resources.jar",
             "com/google/example/l1_resources-src.jar");
-    assertThat(ruleInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath())
+    assertThat(target.getJavaIdeInfo().getJdeps().getRelativePath())
         .isEqualTo("com/google/example/libl.jdeps");
   }
 
@@ -715,28 +717,26 @@
         "  custom_package = 'com.google.example',",
         "  resource_files = ['res/drawable/a.png', 'res/drawable/b.png'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:b");
-    RuleIdeInfo ruleInfo = getRuleInfoAndVerifyLabel("//com/google/example:b", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:b");
+    TargetIdeInfo target = getTargetIdeInfoAndVerifyLabel("//com/google/example:b", targetIdeInfos);
 
-    assertThat(ruleInfo.getKindString()).isEqualTo("android_binary");
-    assertThat(relativePathsForJavaSourcesOf(ruleInfo))
+    assertThat(target.getKindString()).isEqualTo("android_binary");
+    assertThat(relativePathsForJavaSourcesOf(target))
         .containsExactly("com/google/example/Main.java");
-    assertThat(transform(ruleInfo.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    assertThat(transform(target.getJavaIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString("com/google/example", "libb.jar", "libb-hjar.jar", "libb-src.jar"),
             jarString("com/google/example", "b_resources.jar", null, "b_resources-src.jar"));
 
-    assertThat(
-            transform(
-                ruleInfo.getAndroidRuleIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH))
+    assertThat(transform(target.getAndroidIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH))
         .containsExactly("com/google/example/res");
-    assertThat(ruleInfo.getAndroidRuleIdeInfo().getManifest().getRelativePath())
+    assertThat(target.getAndroidIdeInfo().getManifest().getRelativePath())
         .isEqualTo("com/google/example/AndroidManifest.xml");
-    assertThat(ruleInfo.getAndroidRuleIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
-    assertThat(ruleInfo.getAndroidRuleIdeInfo().getApk().getRelativePath())
+    assertThat(target.getAndroidIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
+    assertThat(target.getAndroidIdeInfo().getApk().getRelativePath())
         .isEqualTo("com/google/example/b.apk");
 
-    assertThat(ruleInfo.getDependenciesList()).contains("//com/google/example:l1");
+    assertThat(target.getDependenciesList()).contains("//com/google/example:l1");
 
     assertThat(getIdeResolveFiles())
         .containsExactly(
@@ -749,7 +749,7 @@
             "com/google/example/libl1-src.jar",
             "com/google/example/l1_resources.jar",
             "com/google/example/l1_resources-src.jar");
-    assertThat(ruleInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath())
+    assertThat(target.getJavaIdeInfo().getJdeps().getRelativePath())
         .isEqualTo("com/google/example/libb.jdeps");
   }
 
@@ -767,12 +767,14 @@
         "  deps = [':l'],",
         "  manifest = 'AndroidManifest.xml',",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:b");
-    RuleIdeInfo lRuleInfo = getRuleInfoAndVerifyLabel("//java/com/google/example:l", ruleIdeInfos);
-    RuleIdeInfo bRuleInfo = getRuleInfoAndVerifyLabel("//java/com/google/example:b", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:b");
+    TargetIdeInfo lTarget =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:l", targetIdeInfos);
+    TargetIdeInfo bTarget =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:b", targetIdeInfos);
 
-    assertThat(bRuleInfo.getAndroidRuleIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
-    assertThat(lRuleInfo.getAndroidRuleIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
+    assertThat(bTarget.getAndroidIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
+    assertThat(lTarget.getAndroidIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
   }
 
   @Test
@@ -784,10 +786,10 @@
         "  srcs = ['Test.java'],",
         ")");
     String noIdlTarget = "//java/com/google/example:no_idl";
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo(noIdlTarget);
-    RuleIdeInfo noIdlRuleInfo = getRuleInfoAndVerifyLabel(noIdlTarget, ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo(noIdlTarget);
+    TargetIdeInfo noIdlTargetIdeInfo = getTargetIdeInfoAndVerifyLabel(noIdlTarget, targetIdeInfos);
 
-    assertThat(noIdlRuleInfo.getAndroidRuleIdeInfo().getHasIdlSources()).isFalse();
+    assertThat(noIdlTargetIdeInfo.getAndroidIdeInfo().getHasIdlSources()).isFalse();
   }
 
   @Test
@@ -799,15 +801,15 @@
         "  idl_srcs = ['a.aidl'],",
         ")");
     String idlTarget = "//java/com/google/example:has_idl";
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo(idlTarget);
-    RuleIdeInfo idlRuleInfo = getRuleInfoAndVerifyLabel(idlTarget, ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo(idlTarget);
+    TargetIdeInfo idlTargetIdeInfo = getTargetIdeInfoAndVerifyLabel(idlTarget, targetIdeInfos);
 
-    assertThat(idlRuleInfo.getAndroidRuleIdeInfo().getHasIdlSources()).isTrue();
-    assertThat(LIBRARY_ARTIFACT_TO_STRING.apply(idlRuleInfo.getAndroidRuleIdeInfo().getIdlJar()))
+    assertThat(idlTargetIdeInfo.getAndroidIdeInfo().getHasIdlSources()).isTrue();
+    assertThat(LIBRARY_ARTIFACT_TO_STRING.apply(idlTargetIdeInfo.getAndroidIdeInfo().getIdlJar()))
         .isEqualTo(
             jarString(
                 "java/com/google/example", "libhas_idl-idl.jar", null, "libhas_idl-idl.srcjar"));
-    assertThat(relativePathsForJavaSourcesOf(idlRuleInfo)).isEmpty();
+    assertThat(relativePathsForJavaSourcesOf(idlTargetIdeInfo)).isEmpty();
     assertThat(getIdeResolveFiles())
         .containsExactly(
             "java/com/google/example/libhas_idl.jar",
@@ -826,9 +828,9 @@
         "  idl_srcs = ['a.aidl'],",
         ")");
     String idlTarget = "//java/com/google/example:no_idl_import_root";
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo(idlTarget);
-    RuleIdeInfo idlRuleInfo = getRuleInfoAndVerifyLabel(idlTarget, ruleIdeInfos);
-    assertThat(idlRuleInfo.getAndroidRuleIdeInfo().getIdlImportRoot()).isEmpty();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo(idlTarget);
+    TargetIdeInfo idlTargetIdeInfo = getTargetIdeInfoAndVerifyLabel(idlTarget, targetIdeInfos);
+    assertThat(idlTargetIdeInfo.getAndroidIdeInfo().getIdlImportRoot()).isEmpty();
   }
 
   @Test
@@ -841,9 +843,9 @@
         "  idl_srcs = ['idl/com/google/example/a.aidl'],",
         ")");
     String idlTarget = "//java/com/google/example:has_idl_import_root";
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo(idlTarget);
-    RuleIdeInfo idlRuleInfo = getRuleInfoAndVerifyLabel(idlTarget, ruleIdeInfos);
-    assertThat(idlRuleInfo.getAndroidRuleIdeInfo().getIdlImportRoot()).isEqualTo("idl");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo(idlTarget);
+    TargetIdeInfo idlTargetIdeInfo = getTargetIdeInfoAndVerifyLabel(idlTarget, targetIdeInfos);
+    assertThat(idlTargetIdeInfo.getAndroidIdeInfo().getIdlImportRoot()).isEqualTo("idl");
   }
 
   @Test
@@ -860,7 +862,7 @@
         "  outs = ['AndroidManifest.xml'],",
         "  cmd = '',",
         ")");
-    buildRuleIdeInfo("//com/google/example:lib");
+    buildIdeInfo("//com/google/example:lib");
     assertThat(getIdeResolveFiles())
         .containsExactly(
             "com/google/example/liblib.jar",
@@ -878,11 +880,11 @@
         "  name = 'no_plugin',",
         "  srcs = ['Test.java'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:no_plugin");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:no_plugin", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:no_plugin");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:no_plugin", targetIdeInfos);
 
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getGeneratedJarsList()).isEmpty();
+    assertThat(targetIdeInfo.getJavaIdeInfo().getGeneratedJarsList()).isEmpty();
   }
 
   @Test
@@ -903,14 +905,13 @@
         "  name = 'plugin_lib',",
         "  srcs = ['Plugin.java'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:test");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:test", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:test");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:test", targetIdeInfos);
 
     assertThat(
             transform(
-                ruleIdeInfo.getJavaRuleIdeInfo().getGeneratedJarsList(),
-                LIBRARY_ARTIFACT_TO_STRING))
+                targetIdeInfo.getJavaIdeInfo().getGeneratedJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString("java/com/google/example", "libtest-gen.jar", null, "libtest-gensrc.jar"));
     assertThat(getIdeResolveFiles())
@@ -931,9 +932,10 @@
         "    srcs = ['Test.java'],",
         "    tags = ['d', 'b', 'c', 'a'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    RuleIdeInfo ruleIdeInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    assertThat(ruleIdeInfo.getTagsList()).containsExactly("a", "b", "c", "d");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    assertThat(targetIdeInfo.getTagsList()).containsExactly("a", "b", "c", "d");
   }
 
   @Test
@@ -952,11 +954,11 @@
         "  name = 'super',",
         "  deps = [':forward'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:super");
-    RuleIdeInfo ruleInfo =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:super", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:super");
+    TargetIdeInfo target =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:super", targetIdeInfos);
 
-    assertThat(ruleInfo.getDependenciesList())
+    assertThat(target.getDependenciesList())
         .containsAllOf("//java/com/google/example:forward", "//java/com/google/example:lib");
   }
 
@@ -977,10 +979,11 @@
         "  name = 'exported',",
         "  srcs = ['Exported.java'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    RuleIdeInfo ruleInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    RuleIdeInfo javaToolchain = Iterables.getOnlyElement(findJavaToolchain(ruleIdeInfos));
-    assertThat(ruleInfo.getDependenciesList())
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    TargetIdeInfo target =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    TargetIdeInfo javaToolchain = Iterables.getOnlyElement(findJavaToolchain(targetIdeInfos));
+    assertThat(target.getDependenciesList())
         .containsExactly(javaToolchain.getLabel(), "//com/google/example:middle");
   }
 
@@ -997,10 +1000,11 @@
         "    name = 'lib',",
         "    srcs = ['Test.java', ':gen'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
-    RuleIdeInfo ruleIdeInfo = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
     // todo(dslomov): Skylark aspect implementation does not yet return a correct root path.
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getSourcesList())
+    assertThat(targetIdeInfo.getJavaIdeInfo().getSourcesList())
         .containsExactly(
             ArtifactLocation.newBuilder()
                 .setRootExecutionPathFragment(
@@ -1028,11 +1032,11 @@
         "   runtime_deps = [':foobar'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
     // Fails if aspect was not propagated
-    getRuleInfoAndVerifyLabel("//com/google/example:foobar", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:foobar", targetIdeInfos);
 
-    getRuleInfoAndVerifyLabel("//com/google/example:foobar", ruleIdeInfos);
+    getTargetIdeInfoAndVerifyLabel("//com/google/example:foobar", targetIdeInfos);
   }
 
   @Test
@@ -1059,10 +1063,11 @@
         "   runtime_deps = [':foobar2'],",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib");
     // Fails if aspect was not propagated
-    RuleIdeInfo lib = getRuleInfoAndVerifyLabel("//com/google/example:lib", ruleIdeInfos);
-    RuleIdeInfo lib2 = getRuleInfoAndVerifyLabel("//com/google/example:lib2", ruleIdeInfos);
+    TargetIdeInfo lib = getTargetIdeInfoAndVerifyLabel("//com/google/example:lib", targetIdeInfos);
+    TargetIdeInfo lib2 =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib2", targetIdeInfos);
 
     assertThat(lib.getRuntimeDepsList()).containsExactly("//com/google/example:foobar");
     assertThat(lib2.getRuntimeDepsList()).containsExactly("//com/google/example:foobar2");
@@ -1087,17 +1092,17 @@
         "   deps = [':resource_files', ':manifest']",
         ")");
 
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:neither");
-    RuleIdeInfo neither =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:neither", ruleIdeInfos);
-    RuleIdeInfo resourceFiles =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:resource_files", ruleIdeInfos);
-    RuleIdeInfo manifest =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:manifest", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:neither");
+    TargetIdeInfo neither =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:neither", targetIdeInfos);
+    TargetIdeInfo resourceFiles =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:resource_files", targetIdeInfos);
+    TargetIdeInfo manifest =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:manifest", targetIdeInfos);
 
-    assertThat(neither.getAndroidRuleIdeInfo().getGenerateResourceClass()).isFalse();
-    assertThat(resourceFiles.getAndroidRuleIdeInfo().getGenerateResourceClass()).isTrue();
-    assertThat(manifest.getAndroidRuleIdeInfo().getGenerateResourceClass()).isTrue();
+    assertThat(neither.getAndroidIdeInfo().getGenerateResourceClass()).isFalse();
+    assertThat(resourceFiles.getAndroidIdeInfo().getGenerateResourceClass()).isTrue();
+    assertThat(manifest.getAndroidIdeInfo().getGenerateResourceClass()).isTrue();
   }
 
   @Test
@@ -1109,12 +1114,12 @@
         "  srcs = ['Plugin.java'],",
         "  processor_class = 'com.google.example.Plugin',",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:plugin");
-    RuleIdeInfo plugin =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:plugin", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:plugin");
+    TargetIdeInfo plugin =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:plugin", targetIdeInfos);
 
     assertThat(plugin.getKindString()).isEqualTo("java_plugin");
-    assertThat(transform(plugin.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
+    assertThat(transform(plugin.getJavaIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING))
         .containsExactly(
             jarString(
                 "java/com/google/example",
@@ -1132,18 +1137,19 @@
         "    srcs = ['simple/simple.cc'],",
         "    hdrs = ['simple/simple.h'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleInfo = getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    Entry<String, RuleIdeInfo> toolchainEntry =
-        getCcToolchainRuleAndVerifyThereIsOnlyOne(ruleIdeInfos);
-    RuleIdeInfo toolchainInfo = toolchainEntry.getValue();
-    ArtifactLocation location = ruleInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo target =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    Entry<String, TargetIdeInfo> toolchainEntry =
+        getCcToolchainRuleAndVerifyThereIsOnlyOne(targetIdeInfos);
+    TargetIdeInfo toolchainInfo = toolchainEntry.getValue();
+    ArtifactLocation location = target.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
 
-    assertThat(ruleInfo.hasCRuleIdeInfo()).isTrue();
-    assertThat(ruleInfo.getDependenciesList()).hasSize(1);
+    assertThat(target.hasCIdeInfo()).isTrue();
+    assertThat(target.getDependenciesList()).hasSize(1);
     assertThat(toolchainInfo.hasCToolchainIdeInfo()).isTrue();
   }
 
@@ -1156,34 +1162,34 @@
         "    srcs = ['simple/simple.cc'],",
         "    hdrs = ['simple/simple.h'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
 
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("cc_library");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(1);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("cc_library");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(1);
 
-    assertThat(relativePathsForCSourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForCSourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/simple.cc");
 
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
-    CRuleIdeInfo cRuleIdeInfo = ruleIdeInfo.getCRuleIdeInfo();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
+    CIdeInfo cTargetIdeInfo = targetIdeInfo.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleCoptList()).isEmpty();
-    assertThat(cRuleIdeInfo.getRuleDefineList()).isEmpty();
-    assertThat(cRuleIdeInfo.getRuleIncludeList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetCoptList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetDefineList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetIncludeList()).isEmpty();
 
     ProtocolStringList transQuoteIncludeDirList =
-        cRuleIdeInfo.getTransitiveQuoteIncludeDirectoryList();
+        cTargetIdeInfo.getTransitiveQuoteIncludeDirectoryList();
     assertThat(transQuoteIncludeDirList).contains(".");
 
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJarsList()).isEmpty();
+    assertThat(targetIdeInfo.getJavaIdeInfo().getJarsList()).isEmpty();
 
     assertThat(getIdeResolveFiles()).containsExactly("com/google/example/simple/simple.h");
   }
@@ -1198,20 +1204,20 @@
         "    hdrs = ['simple/simple.h'],",
         "    includes = ['foo/bar'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
 
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isTrue();
-    CRuleIdeInfo cRuleIdeInfo = ruleIdeInfo.getCRuleIdeInfo();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isTrue();
+    CIdeInfo cTargetIdeInfo = targetIdeInfo.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleIncludeList()).containsExactly("foo/bar");
+    assertThat(cTargetIdeInfo.getTargetIncludeList()).containsExactly("foo/bar");
 
     // Make sure our understanding of where this attributes show up in other providers is correct.
-    Entry<String, RuleIdeInfo> toolchainEntry =
-        getCcToolchainRuleAndVerifyThereIsOnlyOne(ruleIdeInfos);
-    RuleIdeInfo toolchainInfo = toolchainEntry.getValue();
+    Entry<String, TargetIdeInfo> toolchainEntry =
+        getCcToolchainRuleAndVerifyThereIsOnlyOne(targetIdeInfos);
+    TargetIdeInfo toolchainInfo = toolchainEntry.getValue();
     assertThat(toolchainInfo.hasCToolchainIdeInfo()).isTrue();
     CToolchainIdeInfo cToolchainIdeInfo = toolchainInfo.getCToolchainIdeInfo();
     ProtocolStringList builtInIncludeDirectoryList =
@@ -1219,17 +1225,17 @@
     assertThat(builtInIncludeDirectoryList).doesNotContain("foo/bar");
     assertThat(builtInIncludeDirectoryList).doesNotContain("com/google/example/foo/bar");
 
-    ProtocolStringList transIncludeDirList = cRuleIdeInfo.getTransitiveIncludeDirectoryList();
+    ProtocolStringList transIncludeDirList = cTargetIdeInfo.getTransitiveIncludeDirectoryList();
     assertThat(transIncludeDirList).doesNotContain("foo/bar");
     assertThat(transIncludeDirList).doesNotContain("com/google/example/foo/bar");
 
     ProtocolStringList transQuoteIncludeDirList =
-        cRuleIdeInfo.getTransitiveQuoteIncludeDirectoryList();
+        cTargetIdeInfo.getTransitiveQuoteIncludeDirectoryList();
     assertThat(transQuoteIncludeDirList).doesNotContain("foo/bar");
     assertThat(transQuoteIncludeDirList).doesNotContain("com/google/example/foo/bar");
 
     ProtocolStringList transSysIncludeDirList =
-        cRuleIdeInfo.getTransitiveSystemIncludeDirectoryList();
+        cTargetIdeInfo.getTransitiveSystemIncludeDirectoryList();
     assertThat(transSysIncludeDirList).doesNotContain("foo/bar");
     assertThat(transSysIncludeDirList).contains("com/google/example/foo/bar");
   }
@@ -1244,20 +1250,20 @@
         "    hdrs = ['simple/simple.h'],",
         "    copts = ['-DGOPT', '-Ifoo/baz/'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
 
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isTrue();
-    CRuleIdeInfo cRuleIdeInfo = ruleIdeInfo.getCRuleIdeInfo();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isTrue();
+    CIdeInfo cTargetIdeInfo = targetIdeInfo.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleCoptList()).containsExactly("-DGOPT", "-Ifoo/baz/");
+    assertThat(cTargetIdeInfo.getTargetCoptList()).containsExactly("-DGOPT", "-Ifoo/baz/");
 
     // Make sure our understanding of where this attributes show up in other providers is correct.
-    Entry<String, RuleIdeInfo> toolchainEntry =
-        getCcToolchainRuleAndVerifyThereIsOnlyOne(ruleIdeInfos);
-    RuleIdeInfo toolchainInfo = toolchainEntry.getValue();
+    Entry<String, TargetIdeInfo> toolchainEntry =
+        getCcToolchainRuleAndVerifyThereIsOnlyOne(targetIdeInfos);
+    TargetIdeInfo toolchainInfo = toolchainEntry.getValue();
     assertThat(toolchainInfo.hasCToolchainIdeInfo()).isTrue();
     CToolchainIdeInfo cToolchainIdeInfo = toolchainInfo.getCToolchainIdeInfo();
     ProtocolStringList baseCompilerOptionList = cToolchainIdeInfo.getBaseCompilerOptionList();
@@ -1283,18 +1289,18 @@
         "    hdrs = ['simple/simple.h'],",
         "    defines = ['VERSION2'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
 
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isTrue();
-    CRuleIdeInfo cRuleIdeInfo = ruleIdeInfo.getCRuleIdeInfo();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isTrue();
+    CIdeInfo cTargetIdeInfo = targetIdeInfo.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleDefineList()).containsExactly("VERSION2");
+    assertThat(cTargetIdeInfo.getTargetDefineList()).containsExactly("VERSION2");
 
     // Make sure our understanding of where this attributes show up in other providers is correct.
-    ProtocolStringList transDefineList = cRuleIdeInfo.getTransitiveDefineList();
+    ProtocolStringList transDefineList = cTargetIdeInfo.getTransitiveDefineList();
     assertThat(transDefineList).contains("VERSION2");
   }
 
@@ -1306,29 +1312,29 @@
         "    name = 'simple',",
         "    srcs = ['simple/simple.cc'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("cc_binary");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(1);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("cc_binary");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(1);
 
-    assertThat(relativePathsForCSourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForCSourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/simple.cc");
 
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
-    CRuleIdeInfo cRuleIdeInfo = ruleIdeInfo.getCRuleIdeInfo();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
+    CIdeInfo cTargetIdeInfo = targetIdeInfo.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleCoptList()).isEmpty();
-    assertThat(cRuleIdeInfo.getRuleDefineList()).isEmpty();
-    assertThat(cRuleIdeInfo.getRuleIncludeList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetCoptList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetDefineList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetIncludeList()).isEmpty();
 
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJarsList()).isEmpty();
+    assertThat(targetIdeInfo.getJavaIdeInfo().getJarsList()).isEmpty();
 
     assertThat(getIdeResolveFiles()).isEmpty();
   }
@@ -1341,29 +1347,29 @@
         "    name = 'simple',",
         "    srcs = ['simple/simple.cc'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("cc_test");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(1);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("cc_test");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(1);
 
-    assertThat(relativePathsForCSourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForCSourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/simple.cc");
 
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
-    CRuleIdeInfo cRuleIdeInfo = ruleIdeInfo.getCRuleIdeInfo();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
+    CIdeInfo cTargetIdeInfo = targetIdeInfo.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleCoptList()).isEmpty();
-    assertThat(cRuleIdeInfo.getRuleDefineList()).isEmpty();
-    assertThat(cRuleIdeInfo.getRuleIncludeList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetCoptList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetDefineList()).isEmpty();
+    assertThat(cTargetIdeInfo.getTargetIncludeList()).isEmpty();
 
-    assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJarsList()).isEmpty();
+    assertThat(targetIdeInfo.getJavaIdeInfo().getJarsList()).isEmpty();
 
     assertThat(getIdeResolveFiles()).isEmpty();
   }
@@ -1385,13 +1391,13 @@
         "    deps = [':lib'],",
         "    nocopts = '-fPIC',",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(3);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(3);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
 
-    assertThat(ruleIdeInfo.getDependenciesList()).contains("//com/google/example:lib");
-    assertThat(ruleIdeInfo.getDependenciesList()).hasSize(2);
+    assertThat(targetIdeInfo.getDependenciesList()).contains("//com/google/example:lib");
+    assertThat(targetIdeInfo.getDependenciesList()).hasSize(2);
 
     assertThat(getIdeCompileFiles())
         .containsExactly("com/google/example/_objs/simple/com/google/example/simple/simple.o");
@@ -1411,11 +1417,11 @@
         "    srcs = ['simple/simple.cc'],",
         "    hdrs = ['simple/simple.h'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:androidlib");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:androidlib", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:androidlib");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:androidlib", targetIdeInfos);
 
-    assertThat(ruleIdeInfo.getDependenciesList()).contains("//com/google/example:simple");
+    assertThat(targetIdeInfo.getDependenciesList()).contains("//com/google/example:simple");
   }
 
   @Test
@@ -1435,19 +1441,20 @@
         "    includes = ['foo/bar'],",
         "    deps = [':lib2'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib1");
-    assertThat(ruleIdeInfos).hasSize(3);
-    RuleIdeInfo lib1 = getRuleInfoAndVerifyLabel("//com/google/example:lib1", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib1");
+    assertThat(targetIdeInfos).hasSize(3);
+    TargetIdeInfo lib1 =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib1", targetIdeInfos);
 
-    assertThat(lib1.hasCRuleIdeInfo()).isTrue();
-    CRuleIdeInfo cRuleIdeInfo = lib1.getCRuleIdeInfo();
+    assertThat(lib1.hasCIdeInfo()).isTrue();
+    CIdeInfo cTargetIdeInfo = lib1.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleIncludeList()).containsExactly("foo/bar");
+    assertThat(cTargetIdeInfo.getTargetIncludeList()).containsExactly("foo/bar");
 
     // Make sure our understanding of where this attributes show up in other providers is correct.
-    Entry<String, RuleIdeInfo> toolchainEntry =
-        getCcToolchainRuleAndVerifyThereIsOnlyOne(ruleIdeInfos);
-    RuleIdeInfo toolchainInfo = toolchainEntry.getValue();
+    Entry<String, TargetIdeInfo> toolchainEntry =
+        getCcToolchainRuleAndVerifyThereIsOnlyOne(targetIdeInfos);
+    TargetIdeInfo toolchainInfo = toolchainEntry.getValue();
     assertThat(toolchainInfo.hasCToolchainIdeInfo()).isTrue();
     CToolchainIdeInfo cToolchainIdeInfo = toolchainInfo.getCToolchainIdeInfo();
     ProtocolStringList builtInIncludeDirectoryList =
@@ -1457,21 +1464,21 @@
     assertThat(builtInIncludeDirectoryList).doesNotContain("com/google/example/foo/bar");
     assertThat(builtInIncludeDirectoryList).doesNotContain("com/google/example/baz/lib");
 
-    ProtocolStringList transIncludeDirList = cRuleIdeInfo.getTransitiveIncludeDirectoryList();
+    ProtocolStringList transIncludeDirList = cTargetIdeInfo.getTransitiveIncludeDirectoryList();
     assertThat(transIncludeDirList).doesNotContain("foo/bar");
     assertThat(transIncludeDirList).doesNotContain("baz/lib");
     assertThat(transIncludeDirList).doesNotContain("com/google/example/foo/bar");
     assertThat(transIncludeDirList).doesNotContain("com/google/example/baz/lib");
 
     ProtocolStringList transQuoteIncludeDirList =
-        cRuleIdeInfo.getTransitiveQuoteIncludeDirectoryList();
+        cTargetIdeInfo.getTransitiveQuoteIncludeDirectoryList();
     assertThat(transQuoteIncludeDirList).doesNotContain("foo/bar");
     assertThat(transQuoteIncludeDirList).doesNotContain("baz/lib");
     assertThat(transQuoteIncludeDirList).doesNotContain("com/google/example/foo/bar");
     assertThat(transQuoteIncludeDirList).doesNotContain("com/google/example/baz/lib");
 
     ProtocolStringList transSysIncludeDirList =
-        cRuleIdeInfo.getTransitiveSystemIncludeDirectoryList();
+        cTargetIdeInfo.getTransitiveSystemIncludeDirectoryList();
     assertThat(transSysIncludeDirList).doesNotContain("foo/bar");
     assertThat(transSysIncludeDirList).doesNotContain("baz/lib");
     assertThat(transSysIncludeDirList).contains("com/google/example/foo/bar");
@@ -1495,19 +1502,20 @@
         "    copts = ['-DGOPT', '-Ifoo/baz/'],",
         "    deps = [':lib2'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib1");
-    assertThat(ruleIdeInfos).hasSize(3);
-    RuleIdeInfo lib1 = getRuleInfoAndVerifyLabel("//com/google/example:lib1", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib1");
+    assertThat(targetIdeInfos).hasSize(3);
+    TargetIdeInfo lib1 =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib1", targetIdeInfos);
 
-    assertThat(lib1.hasCRuleIdeInfo()).isTrue();
-    CRuleIdeInfo cRuleIdeInfo = lib1.getCRuleIdeInfo();
+    assertThat(lib1.hasCIdeInfo()).isTrue();
+    CIdeInfo cTargetIdeInfo = lib1.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleCoptList()).containsExactly("-DGOPT", "-Ifoo/baz/");
+    assertThat(cTargetIdeInfo.getTargetCoptList()).containsExactly("-DGOPT", "-Ifoo/baz/");
 
     // Make sure our understanding of where this attributes show up in other providers is correct.
-    Entry<String, RuleIdeInfo> toolchainEntry =
-        getCcToolchainRuleAndVerifyThereIsOnlyOne(ruleIdeInfos);
-    RuleIdeInfo toolchainInfo = toolchainEntry.getValue();
+    Entry<String, TargetIdeInfo> toolchainEntry =
+        getCcToolchainRuleAndVerifyThereIsOnlyOne(targetIdeInfos);
+    TargetIdeInfo toolchainInfo = toolchainEntry.getValue();
     assertThat(toolchainInfo.hasCToolchainIdeInfo()).isTrue();
     CToolchainIdeInfo cToolchainIdeInfo = toolchainInfo.getCToolchainIdeInfo();
     ProtocolStringList baseCompilerOptionList = cToolchainIdeInfo.getBaseCompilerOptionList();
@@ -1546,17 +1554,18 @@
         "    defines = ['VERSION2'],",
         "    deps = [':lib2'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:lib1");
-    assertThat(ruleIdeInfos).hasSize(3);
-    RuleIdeInfo lib1 = getRuleInfoAndVerifyLabel("//com/google/example:lib1", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:lib1");
+    assertThat(targetIdeInfos).hasSize(3);
+    TargetIdeInfo lib1 =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:lib1", targetIdeInfos);
 
-    assertThat(lib1.hasCRuleIdeInfo()).isTrue();
-    CRuleIdeInfo cRuleIdeInfo = lib1.getCRuleIdeInfo();
+    assertThat(lib1.hasCIdeInfo()).isTrue();
+    CIdeInfo cIdeInfo = lib1.getCIdeInfo();
 
-    assertThat(cRuleIdeInfo.getRuleDefineList()).containsExactly("VERSION2");
+    assertThat(cIdeInfo.getTargetDefineList()).containsExactly("VERSION2");
 
     // Make sure our understanding of where this attributes show up in other providers is correct.
-    ProtocolStringList transDefineList = cRuleIdeInfo.getTransitiveDefineList();
+    ProtocolStringList transDefineList = cIdeInfo.getTransitiveDefineList();
     assertThat(transDefineList).contains("VERSION2");
     assertThat(transDefineList).contains("COMPLEX_IMPL");
   }
@@ -1577,18 +1586,18 @@
         "my_macro(",
         "    name = 'simple',",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//java/com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//java/com/google/example:simple", ruleIdeInfos);
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("android_binary");
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//java/com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//java/com/google/example:simple", targetIdeInfos);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("android_binary");
   }
 
   @Test
   public void testAndroidBinaryIsSerialized() throws Exception {
-    RuleIdeInfo.Builder builder = RuleIdeInfo.newBuilder();
+    TargetIdeInfo.Builder builder = TargetIdeInfo.newBuilder();
     builder.setKindString("android_binary");
     ByteString byteString = builder.build().toByteString();
-    RuleIdeInfo result = RuleIdeInfo.parseFrom(byteString);
+    TargetIdeInfo result = TargetIdeInfo.parseFrom(byteString);
     assertThat(result.getKindString()).isEqualTo("android_binary");
   }
 
@@ -1601,17 +1610,18 @@
         "    srcs = ['simple/simple.cc'],",
         "    hdrs = ['simple/simple.h'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleInfo = getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    Entry<String, RuleIdeInfo> toolchainEntry =
-        getCcToolchainRuleAndVerifyThereIsOnlyOne(ruleIdeInfos);
-    RuleIdeInfo toolchainInfo = toolchainEntry.getValue();
-    ArtifactLocation location = ruleInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    Entry<String, TargetIdeInfo> toolchainEntry =
+        getCcToolchainRuleAndVerifyThereIsOnlyOne(targetIdeInfos);
+    TargetIdeInfo toolchainInfo = toolchainEntry.getValue();
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
 
-    assertThat(ruleInfo.hasCToolchainIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasCToolchainIdeInfo()).isFalse();
     assertThat(toolchainInfo.hasCToolchainIdeInfo()).isTrue();
   }
 
@@ -1623,10 +1633,10 @@
         "    name = 'simple',",
         "    srcs = ['simple/Simple.java']",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isFalse();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    assertThat(targetIdeInfo.hasCIdeInfo()).isFalse();
   }
 
   @Test
@@ -1637,23 +1647,23 @@
         "    name = 'simple',",
         "    srcs = ['simple/simple.py'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("py_binary");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(1);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("py_binary");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(1);
 
-    assertThat(relativePathsForPySourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForPySourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/simple.py");
 
-    assertThat(ruleIdeInfo.hasPyRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasPyIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
 
     assertThat(getIdeResolveFiles()).containsExactly("com/google/example/simple/simple.py");
   }
@@ -1666,23 +1676,23 @@
         "    name = 'simple',",
         "    srcs = ['simple/simple.py'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(1);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(1);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("py_library");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(0);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("py_library");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(0);
 
-    assertThat(relativePathsForPySourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForPySourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/simple.py");
 
-    assertThat(ruleIdeInfo.hasPyRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasPyIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
 
     assertThat(getIdeResolveFiles()).containsExactly("com/google/example/simple/simple.py");
   }
@@ -1695,23 +1705,23 @@
         "    name = 'simple',",
         "    srcs = ['simple/simple.py'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:simple");
-    assertThat(ruleIdeInfos).hasSize(2);
-    RuleIdeInfo ruleIdeInfo =
-        getRuleInfoAndVerifyLabel("//com/google/example:simple", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:simple");
+    assertThat(targetIdeInfos).hasSize(2);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:simple", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("py_test");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(1);
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("py_test");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(1);
 
-    assertThat(relativePathsForPySourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForPySourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/simple/simple.py");
 
-    assertThat(ruleIdeInfo.hasPyRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasPyIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
 
     assertThat(getIdeResolveFiles()).containsExactly("com/google/example/simple/simple.py");
   }
@@ -1729,24 +1739,25 @@
         "    srcs = ['test.py'],",
         "    deps = [':lib'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:test");
-    assertThat(ruleIdeInfos).hasSize(3);
-    RuleIdeInfo ruleIdeInfo = getRuleInfoAndVerifyLabel("//com/google/example:test", ruleIdeInfos);
-    ArtifactLocation location = ruleIdeInfo.getBuildFileArtifactLocation();
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:test");
+    assertThat(targetIdeInfos).hasSize(3);
+    TargetIdeInfo targetIdeInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:test", targetIdeInfos);
+    ArtifactLocation location = targetIdeInfo.getBuildFileArtifactLocation();
     assertThat(Paths.get(location.getRelativePath()).toString())
         .isEqualTo(Paths.get("com/google/example/BUILD").toString());
-    assertThat(ruleIdeInfo.getKindString()).isEqualTo("py_test");
+    assertThat(targetIdeInfo.getKindString()).isEqualTo("py_test");
 
-    assertThat(ruleIdeInfo.getDependenciesList()).contains("//com/google/example:lib");
-    assertThat(ruleIdeInfo.getDependenciesCount()).isEqualTo(2);
+    assertThat(targetIdeInfo.getDependenciesList()).contains("//com/google/example:lib");
+    assertThat(targetIdeInfo.getDependenciesCount()).isEqualTo(2);
 
-    assertThat(relativePathsForPySourcesOf(ruleIdeInfo))
+    assertThat(relativePathsForPySourcesOf(targetIdeInfo))
         .containsExactly("com/google/example/test.py");
 
-    assertThat(ruleIdeInfo.hasPyRuleIdeInfo()).isTrue();
-    assertThat(ruleIdeInfo.hasJavaRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasCRuleIdeInfo()).isFalse();
-    assertThat(ruleIdeInfo.hasAndroidRuleIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasPyIdeInfo()).isTrue();
+    assertThat(targetIdeInfo.hasJavaIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasCIdeInfo()).isFalse();
+    assertThat(targetIdeInfo.hasAndroidIdeInfo()).isFalse();
 
     assertThat(getIdeResolveFiles())
         .containsExactly("com/google/example/test.py", "com/google/example/lib.py");
@@ -1773,10 +1784,12 @@
         "    name = 'real',",
         "    srcs = ['Real.java'],",
         ")");
-    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo("//com/google/example:test");
-    RuleIdeInfo testInfo = getRuleInfoAndVerifyLabel("//com/google/example:test", ruleIdeInfos);
+    Map<String, TargetIdeInfo> targetIdeInfos = buildIdeInfo("//com/google/example:test");
+    TargetIdeInfo testInfo =
+        getTargetIdeInfoAndVerifyLabel("//com/google/example:test", targetIdeInfos);
     assertThat(testInfo.getDependenciesList()).contains("//com/google/example:real");
-    assertThat(getRuleInfoAndVerifyLabel("//com/google/example:real", ruleIdeInfos)).isNotNull();
+    assertThat(getTargetIdeInfoAndVerifyLabel("//com/google/example:real", targetIdeInfos))
+        .isNotNull();
   }
 
   @Test
@@ -1796,7 +1809,7 @@
         "foo(",
         "  name='foo',",
         ")");
-    buildRuleIdeInfo("//com/google/example:foo");
+    buildIdeInfo("//com/google/example:foo");
   }
 
   /**
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 e7caf58..2bbc0ce 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
@@ -34,10 +34,10 @@
 import com.google.devtools.build.lib.analysis.actions.SpawnAction;
 import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact;
-import com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo;
 import com.google.devtools.build.lib.skyframe.AspectValue;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.ArtifactLocation;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.LibraryArtifact;
+import com.google.devtools.intellij.ideinfo.IntellijIdeInfo.TargetIdeInfo;
 import com.google.protobuf.TextFormat;
 import java.io.BufferedReader;
 import java.io.InputStream;
@@ -109,34 +109,34 @@
     return sb.toString();
   }
 
-  protected static Iterable<String> relativePathsForJavaSourcesOf(RuleIdeInfo ruleIdeInfo) {
-    return relativePathsForSources(ruleIdeInfo.getJavaRuleIdeInfo().getSourcesList());
+  protected static Iterable<String> relativePathsForJavaSourcesOf(TargetIdeInfo ruleIdeInfo) {
+    return relativePathsForSources(ruleIdeInfo.getJavaIdeInfo().getSourcesList());
   }
 
-  protected static Iterable<String> relativePathsForCSourcesOf(RuleIdeInfo ruleIdeInfo) {
-    return relativePathsForSources(ruleIdeInfo.getCRuleIdeInfo().getSourceList());
+  protected static Iterable<String> relativePathsForCSourcesOf(TargetIdeInfo ruleIdeInfo) {
+    return relativePathsForSources(ruleIdeInfo.getCIdeInfo().getSourceList());
   }
 
-  protected static Iterable<String> relativePathsForPySourcesOf(RuleIdeInfo ruleIdeInfo) {
-    return relativePathsForSources(ruleIdeInfo.getPyRuleIdeInfo().getSourcesList());
+  protected static Iterable<String> relativePathsForPySourcesOf(TargetIdeInfo ruleIdeInfo) {
+    return relativePathsForSources(ruleIdeInfo.getPyIdeInfo().getSourcesList());
   }
 
   private static Iterable<String> relativePathsForSources(List<ArtifactLocation> sourcesList) {
     return transform(sourcesList, ARTIFACT_TO_RELATIVE_PATH);
   }
 
-  protected RuleIdeInfo getRuleInfoAndVerifyLabel(
-      String target, Map<String, RuleIdeInfo> ruleIdeInfos) {
-    RuleIdeInfo ruleIdeInfo = ruleIdeInfos.get(target);
+  protected TargetIdeInfo getTargetIdeInfoAndVerifyLabel(
+      String target, Map<String, TargetIdeInfo> ruleIdeInfos) {
+    TargetIdeInfo ruleIdeInfo = ruleIdeInfos.get(target);
     assertThat(ruleIdeInfo).named(target).isNotNull();
     assertThat(ruleIdeInfo.getLabel()).isEqualTo(target);
     return ruleIdeInfo;
   }
 
-  protected Entry<String, RuleIdeInfo> getCcToolchainRuleAndVerifyThereIsOnlyOne(
-      Map<String, RuleIdeInfo> ruleIdeInfos) {
-    Entry<String, RuleIdeInfo> toolchainInfo = null;
-    for (Entry<String, RuleIdeInfo> entry : ruleIdeInfos.entrySet()) {
+  protected Entry<String, TargetIdeInfo> getCcToolchainRuleAndVerifyThereIsOnlyOne(
+      Map<String, TargetIdeInfo> ruleIdeInfos) {
+    Entry<String, TargetIdeInfo> toolchainInfo = null;
+    for (Entry<String, TargetIdeInfo> entry : ruleIdeInfos.entrySet()) {
       if (entry.getValue().getKindString().equals("cc_toolchain")) {
         // Make sure we only have 1.
         assertThat(toolchainInfo).isNull();
@@ -186,21 +186,21 @@
 
 
   /**
-   * Returns a map of (label as string) -> RuleIdeInfo for each rule in the transitive
-   * closure of the passed target.
+   * Returns a map of (label as string) -> TargetIdeInfo for each rule in the transitive closure of
+   * the passed target.
    */
-  protected Map<String, RuleIdeInfo> buildRuleIdeInfo(String target) throws Exception {
+  protected Map<String, TargetIdeInfo> buildIdeInfo(String target) throws Exception {
     if (isNativeTest()) {
       buildTarget(target);
       AndroidStudioInfoFilesProvider provider =
           configuredAspect.getProvider(AndroidStudioInfoFilesProvider.class);
       Iterable<Artifact> artifacts = provider.getIdeInfoFiles();
-      Map<String, RuleIdeInfo> ruleIdeInfos = new HashMap<>();
+      Map<String, TargetIdeInfo> ruleIdeInfos = new HashMap<>();
       for (Artifact artifact : artifacts) {
         Action generatingAction = getGeneratingAction(artifact);
         if (generatingAction instanceof BinaryFileWriteAction) {
           BinaryFileWriteAction writeAction = (BinaryFileWriteAction) generatingAction;
-          RuleIdeInfo ruleIdeInfo = RuleIdeInfo.parseFrom(writeAction.getSource().openStream());
+          TargetIdeInfo ruleIdeInfo = TargetIdeInfo.parseFrom(writeAction.getSource().openStream());
           ruleIdeInfos.put(ruleIdeInfo.getLabel(), ruleIdeInfo);
         } else {
           verifyPackageManifestSpawnAction(generatingAction);
@@ -222,14 +222,14 @@
       this.configuredAspect = aspectValue.getConfiguredAspect();
       OutputGroupProvider provider = configuredAspect.getProvider(OutputGroupProvider.class);
       NestedSet<Artifact> outputGroup = provider.getOutputGroup("intellij-info-text");
-      Map<String, RuleIdeInfo> ruleIdeInfos = new HashMap<>();
+      Map<String, TargetIdeInfo> ruleIdeInfos = new HashMap<>();
       for (Artifact artifact : outputGroup) {
         Action generatingAction = getGeneratingAction(artifact);
         if (generatingAction instanceof FileWriteAction) {
           String fileContents = ((FileWriteAction) generatingAction).getFileContents();
-          RuleIdeInfo.Builder builder = RuleIdeInfo.newBuilder();
+          TargetIdeInfo.Builder builder = TargetIdeInfo.newBuilder();
           TextFormat.getParser().merge(fileContents, builder);
-          RuleIdeInfo ruleIdeInfo = builder.build();
+          TargetIdeInfo ruleIdeInfo = builder.build();
           ruleIdeInfos.put(ruleIdeInfo.getLabel(), ruleIdeInfo);
         } else {
           verifyPackageManifestSpawnAction(generatingAction);
@@ -278,9 +278,9 @@
     return getOutputGroupResult(name);
   }
 
-  protected static List<RuleIdeInfo> findJavaToolchain(Map<String, RuleIdeInfo> ruleIdeInfos) {
-    List<RuleIdeInfo> result = Lists.newArrayList();
-    for (RuleIdeInfo ruleIdeInfo : ruleIdeInfos.values()) {
+  protected static List<TargetIdeInfo> findJavaToolchain(Map<String, TargetIdeInfo> ruleIdeInfos) {
+    List<TargetIdeInfo> result = Lists.newArrayList();
+    for (TargetIdeInfo ruleIdeInfo : ruleIdeInfos.values()) {
       if (ruleIdeInfo.getKindString().equals("java_toolchain")) {
         result.add(ruleIdeInfo);
       }
diff --git a/tools/ide/intellij_info.bzl b/tools/ide/intellij_info.bzl
index 5406c1e..12ef9cd 100644
--- a/tools/ide/intellij_info.bzl
+++ b/tools/ide/intellij_info.bzl
@@ -130,11 +130,11 @@
 def replace_empty_path_with_dot(pathString):
   return "." if len(pathString) == 0 else pathString
 
-def sources_from_rule(context):
+def sources_from_target(context):
   """
-  Get the list of sources from a rule as artifact locations.
+  Get the list of sources from a target as artifact locations.
 
-  Returns the list of sources as artifact locations for a rule or an empty list if no sources are
+  Returns the list of sources as artifact locations for a target or an empty list if no sources are
   present.
   """
 
@@ -195,64 +195,64 @@
 
 ##### Builders for individual parts of the aspect output
 
-def build_py_rule_ide_info(target, ctx):
-  """Build PyRuleIdeInfo.
+def build_py_ide_info(target, ctx):
+  """Build PyIdeInfo.
 
-  Returns a tuple of (PyRuleIdeInfo proto, a set of intellij-resolve-files).
-  (or (None, empty set) if the rule is not a python rule).
+  Returns a tuple of (PyIdeInfo proto, a set of intellij-resolve-files).
+  (or (None, empty set) if the target is not a python rule).
   """
   if not hasattr(target, "py"):
     return (None, set())
 
-  sources = sources_from_rule(ctx)
+  sources = sources_from_target(ctx)
   transitive_sources = target.py.transitive_sources
 
-  py_rule_ide_info = struct_omit_none(
+  py_ide_info = struct_omit_none(
       sources = sources,
   )
-  return (py_rule_ide_info, transitive_sources)
+  return (py_ide_info, transitive_sources)
 
-def build_c_rule_ide_info(target, ctx):
-  """Build CRuleIdeInfo.
+def build_c_ide_info(target, ctx):
+  """Build CIdeInfo.
 
-  Returns a tuple of (CRuleIdeInfo proto, a set of intellij-resolve-files).
-  (or (None, empty set) if the rule is not a C rule).
+  Returns a tuple of (CIdeInfo proto, a set of intellij-resolve-files).
+  (or (None, empty set) if the target is not a C rule).
   """
   if not hasattr(target, "cc"):
     return (None, set())
 
-  sources = sources_from_rule(ctx)
+  sources = sources_from_target(ctx)
 
-  rule_includes = []
+  target_includes = []
   if hasattr(ctx.rule.attr, "includes"):
-    rule_includes = ctx.rule.attr.includes
-  rule_defines = []
+    target_includes = ctx.rule.attr.includes
+  target_defines = []
   if hasattr(ctx.rule.attr, "defines"):
-    rule_defines = ctx.rule.attr.defines
-  rule_copts = []
+    target_defines = ctx.rule.attr.defines
+  target_copts = []
   if hasattr(ctx.rule.attr, "copts"):
-    rule_copts = ctx.rule.attr.copts
+    target_copts = ctx.rule.attr.copts
 
   cc_provider = target.cc
 
-  c_rule_ide_info = struct_omit_none(
+  c_ide_info = struct_omit_none(
       source = sources,
-      rule_include = rule_includes,
-      rule_define = rule_defines,
-      rule_copt = rule_copts,
+      target_include = target_includes,
+      target_define = target_defines,
+      target_copt = target_copts,
       transitive_include_directory = cc_provider.include_directories,
       transitive_quote_include_directory = cc_provider.quote_include_directories,
       transitive_define = cc_provider.defines,
       transitive_system_include_directory = cc_provider.system_include_directories,
   )
   intellij_resolve_files = cc_provider.transitive_headers
-  return (c_rule_ide_info, intellij_resolve_files)
+  return (c_ide_info, intellij_resolve_files)
 
 def build_c_toolchain_ide_info(target, ctx):
   """Build CToolchainIdeInfo.
 
   Returns a pair of (CToolchainIdeInfo proto, a set of intellij-resolve-files).
-  (or (None, empty set) if the rule is not a cc_toolchain rule).
+  (or (None, empty set) if the target is not a cc_toolchain rule).
   """
 
   if ctx.rule.kind != "cc_toolchain":
@@ -276,19 +276,19 @@
   )
   return (c_toolchain_ide_info, set())
 
-def build_java_rule_ide_info(target, ctx):
+def build_java_ide_info(target, ctx):
   """
-  Build JavaRuleIdeInfo.
+  Build JavaIdeInfo.
 
   Returns a pair of
-  (JavaRuleIdeInfo proto, a set of ide-info-files, a set of intellij-resolve-files).
-  (or (None, empty set, empty set) if the rule is not Java rule).
+  (JavaIdeInfo proto, a set of ide-info-files, a set of intellij-resolve-files).
+  (or (None, empty set, empty set) if the target is not Java rule).
   """
   if not hasattr(target, "java") or ctx.rule.kind == "proto_library":
     return (None, set(), set())
 
   ide_info_files = set()
-  sources = sources_from_rule(ctx)
+  sources = sources_from_target(ctx)
 
   jars = [library_artifact(output) for output in target.java.outputs.jars]
   output_jars = [jar for output in target.java.outputs.jars for jar in jars_from_output(output)]
@@ -327,7 +327,7 @@
     )
     intellij_resolve_files = intellij_resolve_files | filtered_gen_resolve_files
 
-  java_rule_ide_info = struct_omit_none(
+  java_ide_info = struct_omit_none(
       sources = sources,
       jars = jars,
       jdeps = jdeps,
@@ -335,7 +335,7 @@
       package_manifest = artifact_location(package_manifest),
       filtered_gen_jar = filtered_gen_jar,
   )
-  return (java_rule_ide_info, ide_info_files, intellij_resolve_files)
+  return (java_ide_info, ide_info_files, intellij_resolve_files)
 
 def build_java_package_manifest(ctx, target, source_files, suffix):
   """Builds the java package manifest for the given source files."""
@@ -421,17 +421,17 @@
 
   return java_sources, gen_java_sources, srcjars
 
-def build_android_rule_ide_info(target, ctx, legacy_resource_label):
-  """Build AndroidRuleIdeInfo.
+def build_android_ide_info(target, ctx, legacy_resource_label):
+  """Build AndroidIdeInfo.
 
-  Returns a pair of (AndroidRuleIdeInfo proto, a set of intellij-resolve-files).
-  (or (None, empty set) if the rule is not Android rule).
+  Returns a pair of (AndroidIdeInfo proto, a set of intellij-resolve-files).
+  (or (None, empty set) if the target is not Android rule).
   """
   if not hasattr(target, "android"):
     return (None, set())
 
   android = target.android
-  android_rule_ide_info = struct_omit_none(
+  android_ide_info = struct_omit_none(
       java_package = android.java_package,
       idl_import_root = android.idl.import_root if hasattr(android.idl, "import_root") else None,
       manifest = artifact_location(android.manifest),
@@ -449,7 +449,7 @@
   if android.manifest and not android.manifest.is_source:
     intellij_resolve_files = intellij_resolve_files | set([android.manifest])
 
-  return (android_rule_ide_info, intellij_resolve_files)
+  return (android_ide_info, intellij_resolve_files)
 
 def build_test_info(target, ctx):
   """Build TestInfo"""
@@ -526,24 +526,24 @@
     intellij_resolve_files = intellij_resolve_files | dep.intellij_info_files.intellij_resolve_files
 
   # Collect python-specific information
-  (py_rule_ide_info, py_resolve_files) = build_py_rule_ide_info(target, ctx)
+  (py_ide_info, py_resolve_files) = build_py_ide_info(target, ctx)
   intellij_resolve_files = intellij_resolve_files | py_resolve_files
 
   # Collect C-specific information
-  (c_rule_ide_info, c_resolve_files) = build_c_rule_ide_info(target, ctx)
+  (c_ide_info, c_resolve_files) = build_c_ide_info(target, ctx)
   intellij_resolve_files = intellij_resolve_files | c_resolve_files
 
   (c_toolchain_ide_info, c_toolchain_resolve_files) = build_c_toolchain_ide_info(target, ctx)
   intellij_resolve_files = intellij_resolve_files | c_toolchain_resolve_files
 
   # Collect Java-specific information
-  (java_rule_ide_info, java_ide_info_files, java_resolve_files) = build_java_rule_ide_info(
+  (java_ide_info, java_ide_info_files, java_resolve_files) = build_java_ide_info(
       target, ctx)
   intellij_info_text = intellij_info_text | java_ide_info_files
   intellij_resolve_files = intellij_resolve_files | java_resolve_files
 
   # Collect Android-specific information
-  (android_rule_ide_info, android_resolve_files) = build_android_rule_ide_info(
+  (android_ide_info, android_resolve_files) = build_android_ide_info(
       target, ctx, legacy_resource_label)
   intellij_resolve_files = intellij_resolve_files | android_resolve_files
 
@@ -556,22 +556,22 @@
   # Collect test info
   test_info = build_test_info(target, ctx)
 
-  # Build RuleIdeInfo proto
+  # Build TargetIdeInfo proto
   info = struct_omit_none(
       label = str(target.label),
       kind_string = ctx.rule.kind,
       dependencies = list(compiletime_deps),
       runtime_deps = list(runtime_deps),
       build_file_artifact_location = build_file_artifact_location(ctx.build_file_path),
-      c_rule_ide_info = c_rule_ide_info,
+      c_ide_info = c_ide_info,
       c_toolchain_ide_info = c_toolchain_ide_info,
-      java_rule_ide_info = java_rule_ide_info,
-      android_rule_ide_info = android_rule_ide_info,
+      java_ide_info = java_ide_info,
+      android_ide_info = android_ide_info,
       tags = ctx.rule.attr.tags,
       test_info = test_info,
       proto_library_legacy_java_ide_info = proto_library_legacy_java_ide_info,
       java_toolchain_ide_info = java_toolchain_ide_info,
-      py_rule_ide_info = py_rule_ide_info,
+      py_ide_info = py_ide_info,
   )
 
   # Output the ide information file.