diff --git a/aspect/build_dependencies.bzl b/aspect/build_dependencies.bzl
index d0de7c6e067..5152d7d76ce 100644
--- a/aspect/build_dependencies.bzl
+++ b/aspect/build_dependencies.bzl
@@ -458,7 +458,8 @@ FOLLOW_ATTRIBUTES_BY_RULE_KIND = [
("_aspect_proto_toolchain_for_javalite", []),
("_aspect_java_proto_toolchain", []),
("runtime", ["proto_lang_toolchain", "java_rpc_toolchain"]),
- ("_toolchain", ["_java_grpc_library", "_java_lite_grpc_library"]),
+ ("_toolchain", ["_java_grpc_library", "_java_lite_grpc_library", "kt_jvm_library_helper", "android_library"]),
+ ("kotlin_libs", ["kt_jvm_toolchain"]),
]
FOLLOW_ATTRIBUTES = [attr for (attr, _) in FOLLOW_ATTRIBUTES_BY_RULE_KIND]
diff --git a/querysync/java/com/google/idea/blaze/qsync/query/QuerySummary.java b/querysync/java/com/google/idea/blaze/qsync/query/QuerySummary.java
index 73c1b55881f..cccb91309f1 100644
--- a/querysync/java/com/google/idea/blaze/qsync/query/QuerySummary.java
+++ b/querysync/java/com/google/idea/blaze/qsync/query/QuerySummary.java
@@ -72,7 +72,7 @@ public abstract class QuerySummary {
*
Whenever changing the logic in this class such that the Query.Summary proto contents will be
* different for the same input, this version should be incremented.
*/
- @VisibleForTesting public static final int PROTO_VERSION = 5;
+ @VisibleForTesting public static final int PROTO_VERSION = 6;
public static final QuerySummary EMPTY =
create(Query.Summary.newBuilder().setVersion(PROTO_VERSION).build());
@@ -96,7 +96,12 @@ public abstract class QuerySummary {
// need to always need to traverse the attribute.
private static final ImmutableMap> RULE_SCOPED_ATTRIBUTES =
ImmutableMap.of(
- "$toolchain", ImmutableSet.of("_java_grpc_library", "_java_lite_grpc_library"));
+ "$toolchain",
+ ImmutableSet.of(
+ "_java_grpc_library",
+ "_java_lite_grpc_library",
+ "kt_jvm_library_helper",
+ "android_library"));
// Runtime dependency attributes
private static final ImmutableSet RUNTIME_DEP_ATTRIBUTES =
diff --git a/querysync/javatests/com/google/idea/blaze/qsync/project/BuildGraphTest.java b/querysync/javatests/com/google/idea/blaze/qsync/project/BuildGraphTest.java
index b1d3481e761..b83f742e5c8 100644
--- a/querysync/javatests/com/google/idea/blaze/qsync/project/BuildGraphTest.java
+++ b/querysync/javatests/com/google/idea/blaze/qsync/project/BuildGraphTest.java
@@ -157,8 +157,13 @@ public void testAndroidLibrary() throws Exception {
assertThat(graph.getTargetOwners(TESTDATA_ROOT.resolve("android/TestAndroidClass.java")))
.containsExactly(Label.of("//" + TESTDATA_ROOT + "/android:android"));
assertThat(graph.getFileDependencies(TESTDATA_ROOT.resolve("android/TestAndroidClass.java")))
- .isEmpty();
- assertThat(graph.projectDeps()).isEmpty();
+ .containsExactly(
+ Label.of(
+ "//third_party/bazel_rules/rules_kotlin/toolchains/kotlin_jvm:kt_jvm_toolchain_linux_sts_jdk"));
+ assertThat(graph.projectDeps())
+ .containsExactly(
+ Label.of(
+ "//third_party/bazel_rules/rules_kotlin/toolchains/kotlin_jvm:kt_jvm_toolchain_linux_sts_jdk"));
}
@Test
@@ -175,9 +180,16 @@ public void testProjectAndroidLibrariesWithAidlSource_areProjectDeps() throws Ex
.containsExactly(TESTDATA_ROOT.resolve("aidl/TestAndroidAidlClass.java"));
assertThat(graph.getAndroidSourceFiles())
.containsExactly(TESTDATA_ROOT.resolve("aidl/TestAndroidAidlClass.java"));
- assertThat(graph.projectDeps()).containsExactly(Label.of("//" + TESTDATA_ROOT + "/aidl:aidl"));
+ assertThat(graph.projectDeps())
+ .containsExactly(
+ Label.of(
+ "//third_party/bazel_rules/rules_kotlin/toolchains/kotlin_jvm:kt_jvm_toolchain_linux_sts_jdk"),
+ Label.of("//" + TESTDATA_ROOT + "/aidl:aidl"));
assertThat(graph.getFileDependencies(TESTDATA_ROOT.resolve("aidl/TestAndroidAidlClass.java")))
- .containsExactly(Label.of("//" + TESTDATA_ROOT + "/aidl:aidl"));
+ .containsExactly(
+ Label.of(
+ "//third_party/bazel_rules/rules_kotlin/toolchains/kotlin_jvm:kt_jvm_toolchain_linux_sts_jdk"),
+ Label.of("//" + TESTDATA_ROOT + "/aidl:aidl"));
}
}
diff --git a/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinandroidlib/BUILD b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinandroidlib/BUILD
new file mode 100644
index 00000000000..ed9e70d9bf8
--- /dev/null
+++ b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinandroidlib/BUILD
@@ -0,0 +1,6 @@
+load("@build_bazel_rules_android//android:rules.bzl", "android_library")
+
+android_library(
+ name = "kotlinandroidlib",
+ srcs = ["TestKotlinAndroidLib.kt"],
+)
diff --git a/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinandroidlib/TestKotlinAndroidLib.kt b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinandroidlib/TestKotlinAndroidLib.kt
new file mode 100644
index 00000000000..c00f5eb4cef
--- /dev/null
+++ b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinandroidlib/TestKotlinAndroidLib.kt
@@ -0,0 +1,3 @@
+package com.google.idea.blaze.qsync.testdata.kotlinandroidlib
+
+val aList: List = listOf("A", "B", "C")
diff --git a/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinlib/BUILD b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinlib/BUILD
new file mode 100644
index 00000000000..b525b0e5dd3
--- /dev/null
+++ b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinlib/BUILD
@@ -0,0 +1,6 @@
+load("//tools/build_defs/kotlin:rules.bzl", "kt_jvm_library")
+
+kt_jvm_library(
+ name = "kotlinlib",
+ srcs = ["TestKotlinLib.kt"],
+)
diff --git a/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinlib/TestKotlinLib.kt b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinlib/TestKotlinLib.kt
new file mode 100644
index 00000000000..9d43daaa54a
--- /dev/null
+++ b/querysync/javatests/com/google/idea/blaze/qsync/testdata/kotlinlib/TestKotlinLib.kt
@@ -0,0 +1,3 @@
+package com.google.idea.blaze.qsync.testdata.kotlinlib
+
+val aList: List = listOf(1, 2, 3)