Fix transitive dependency propagation for sourceless targets (#1455)

* Update impl.bzl

Fix transitive dependency propagation for sourceless targets (e.g. android_library with only exports/deps and no srcs) in _reshade_embedded_kotlinc_jars                                                                             
                                                                                                                                                                                                                                         
# Why

When a target has no source files, jars is empty, so the reshading comprehension produces nothing. The final java_common.merge then merges an empty list, silently dropping all deps. This breaks downstream consumers that rely on the full processor classpath being propagated transitively through these wrapper targets.

* Adding testing
diff --git a/kotlin/internal/jvm/impl.bzl b/kotlin/internal/jvm/impl.bzl
index 30af2fb..c233e9f 100644
--- a/kotlin/internal/jvm/impl.bzl
+++ b/kotlin/internal/jvm/impl.bzl
@@ -498,6 +498,10 @@
     ]
 
 def _reshade_embedded_kotlinc_jars(target, ctx, jars, deps):
+    # No jars to reshade — just propagate transitive deps (e.g. sourceless libraries).
+    if not jars:
+        return java_common.merge(deps) if deps else java_common.merge([])
+
     reshaded = [
         jarjar_action(
             actions = ctx.actions,
diff --git a/src/test/starlark/internal/jvm/jvm_deps_tests.bzl b/src/test/starlark/internal/jvm/jvm_deps_tests.bzl
index cbb8fab..3ce956f 100644
--- a/src/test/starlark/internal/jvm/jvm_deps_tests.bzl
+++ b/src/test/starlark/internal/jvm/jvm_deps_tests.bzl
@@ -1,8 +1,11 @@
 load("@bazel_skylib//lib:structs.bzl", _structs = "structs")
+load("@rules_java//java:defs.bzl", "java_library")
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test")
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
 load("@rules_testing//lib:util.bzl", "util")
+load("//kotlin:core.bzl", "kt_compiler_plugin")
+load("//kotlin:jvm.bzl", "kt_jvm_import")
 load("//kotlin/internal:defs.bzl", _KtJvmInfo = "KtJvmInfo")
 load("//kotlin/internal/jvm:jvm_deps.bzl", _jvm_deps_utils = "jvm_deps_utils")
 
@@ -392,6 +395,46 @@
         },
     )
 
+def _sourceless_dep_propagation_test_impl(env, target):
+    """Verify that a sourceless wrapper propagates transitive deps
+
+    Regression test for a bug where _reshade_embedded_kotlinc_jars would produce an empty merge
+    when jars was empty (sourceless target), silently dropping all transitive deps.
+    """
+    files = target[DefaultInfo].files.to_list()
+    env.expect.that_bool(len(files) > 0).equals(True)
+
+def _sourceless_dep_propagation_test(name):
+    """A sourceless library wrapping a real dep must propagate it."""
+
+    actual_dep_jar = util.empty_file(name + "_actual_dep.jar")
+
+    util.helper_target(
+        kt_jvm_import,
+        name = name + "_actual_dep",
+        jars = [actual_dep_jar],
+    )
+
+    util.helper_target(
+        java_library,
+        name = name + "_sourceless_wrapper",
+        exports = [":" + name + "_actual_dep"],
+    )
+
+    util.helper_target(
+        kt_compiler_plugin,
+        name = name + "_subject",
+        id = "test.sourceless_propagation",
+        target_embedded_compiler = True,
+        deps = [":" + name + "_sourceless_wrapper"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _sourceless_dep_propagation_test_impl,
+        target = name + "_subject",
+    )
+
 def jvm_deps_test_suite(name):
     test_suite(
         name,
@@ -401,5 +444,6 @@
             _transitive_from_exports_test,
             _transitive_from_associates_test,
             _dep_infos_ordering_test,
+            _sourceless_dep_propagation_test,
         ],
     )