Add --incompatible_disallow_legacy_java_provider flag.
RELNOTES: None.
PiperOrigin-RevId: 228660460
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
index 7be8fb2..08bde63 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -143,6 +143,7 @@
"--incompatible_disallow_dict_plus=" + rand.nextBoolean(),
"--incompatible_disallow_filetype=" + rand.nextBoolean(),
"--incompatible_disallow_legacy_javainfo=" + rand.nextBoolean(),
+ "--incompatible_disallow_legacy_java_provider=" + rand.nextBoolean(),
"--incompatible_disallow_load_labels_to_cross_package_boundaries=" + rand.nextBoolean(),
"--incompatible_disallow_old_style_args_add=" + rand.nextBoolean(),
"--incompatible_disallow_slash_operator=" + rand.nextBoolean(),
@@ -190,6 +191,7 @@
.incompatibleDisallowDictPlus(rand.nextBoolean())
.incompatibleDisallowFileType(rand.nextBoolean())
.incompatibleDisallowLegacyJavaInfo(rand.nextBoolean())
+ .incompatibleDisallowLegacyJavaProvider(rand.nextBoolean())
.incompatibleDisallowLoadLabelsToCrossPackageBoundaries(rand.nextBoolean())
.incompatibleDisallowOldStyleArgsAdd(rand.nextBoolean())
.incompatibleDisallowSlashOperator(rand.nextBoolean())
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index 4464f35..be6e8ba 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -2105,4 +2105,29 @@
assertThat(output.getClassJar().getFilename()).isEqualTo("libc.jar");
assertThat(output.getIJar()).isNull();
}
+
+ @Test
+ public void testDisallowLegacyJavaProvider() throws Exception {
+ setSkylarkSemanticsOptions("--incompatible_disallow_legacy_java_provider");
+ scratch.file(
+ "foo/custom_rule.bzl",
+ "def _impl(ctx):",
+ " ctx.attr.java_lib.java.source_jars",
+ "java_custom_library = rule(",
+ " implementation = _impl,",
+ " attrs = {",
+ " 'java_lib': attr.label(),",
+ " },",
+ ")");
+
+ scratch.file(
+ "foo/BUILD",
+ "load(':custom_rule.bzl', 'java_custom_library')",
+ "java_library(name = 'java_lib', srcs = ['java/A.java'])",
+ "java_custom_library(name = 'custom_lib', java_lib = ':java_lib')");
+ checkError(
+ "//foo:custom_lib",
+ "The .java provider is deprecated and cannot be used "
+ + "when --incompatible_disallow_legacy_java_provider is set.");
+ }
}