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)