diff --git a/scala/scala.bzl b/scala/scala.bzl index 778d49b8f..f9c966531 100644 --- a/scala/scala.bzl +++ b/scala/scala.bzl @@ -606,6 +606,7 @@ def _lib(ctx, non_macro_lib): java_provider = java_common.create_provider( compile_time_jars = scalaattr.compile_jars, runtime_jars = scalaattr.transitive_runtime_jars, + transitive_compile_time_jars = jars.transitive_compile_jars, ) return struct( diff --git a/test_expect_failure/missing_direct_deps/internal_deps/BUILD b/test_expect_failure/missing_direct_deps/internal_deps/BUILD index 197f05d1b..7408a7017 100644 --- a/test_expect_failure/missing_direct_deps/internal_deps/BUILD +++ b/test_expect_failure/missing_direct_deps/internal_deps/BUILD @@ -9,6 +9,14 @@ scala_library( deps = ["direct_dependency"], ) +scala_library( + name="transitive_dependency_java_user", + srcs=[ + "User.java", + ], + deps = ["direct_dependency"], +) + scala_library( name="direct_dependency", srcs=[ diff --git a/test_expect_failure/missing_direct_deps/internal_deps/User.java b/test_expect_failure/missing_direct_deps/internal_deps/User.java new file mode 100644 index 000000000..70dcf8b24 --- /dev/null +++ b/test_expect_failure/missing_direct_deps/internal_deps/User.java @@ -0,0 +1,10 @@ +package test_expect_failure.missing_direct_deps.internal_deps; + +public class User { + + public void foo() { + B.foo(); + C.foo(); + } + +} diff --git a/test_run.sh b/test_run.sh index c96527617..2a64f4fcb 100755 --- a/test_run.sh +++ b/test_run.sh @@ -150,6 +150,15 @@ test_scala_library_expect_failure_on_missing_direct_deps_warn_mode() { test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message "${expected_message}" ${test_target} "--strict_java_deps=warn" "ne" } +test_scala_library_expect_failure_on_missing_direct_java() { + dependency_target='//test_expect_failure/missing_direct_deps/internal_deps:transitive_dependency' + test_target='//test_expect_failure/missing_direct_deps/internal_deps:transitive_dependency_java_user' + + expected_message="$dependency_target[ \t]*to[ \t]*$test_target" + + test_expect_failure_or_warning_on_missing_direct_deps_with_expected_message "${expected_message}" $test_target "--strict_java_deps=error" +} + test_scala_library_expect_failure_on_missing_direct_deps_off_mode() { expected_message="test_expect_failure/missing_direct_deps/internal_deps/A.scala:[0-9+]: error: not found: value C" test_target='test_expect_failure/missing_direct_deps/internal_deps:transitive_dependency_user' @@ -554,4 +563,5 @@ $runner test_scala_library_expect_no_recompilation_on_internal_change_of_transit $runner test_multi_service_manifest $runner test_scala_library_expect_no_recompilation_on_internal_change_of_scala_dependency $runner test_scala_library_expect_no_recompilation_on_internal_change_of_java_dependency -$runner test_scala_library_expect_no_java_recompilation_on_internal_change_of_scala_sibling \ No newline at end of file +$runner test_scala_library_expect_no_java_recompilation_on_internal_change_of_scala_sibling +$runner test_scala_library_expect_failure_on_missing_direct_java \ No newline at end of file