Change compile_one_filetype to account for many types
RELNOTES:none
PiperOrigin-RevId: 396835954
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
index e906ba1..5df7521 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
@@ -460,12 +460,15 @@
builder.addExecutionPlatformConstraints(parseExecCompatibleWith(execCompatibleWith, thread));
}
- if (compileOneFiletype instanceof String) {
+ if (compileOneFiletype instanceof Sequence) {
if (!bzlModule.label().getRepository().getName().equals("@_builtins")) {
throw Starlark.errorf(
"Rule in '%s' cannot use private API", bzlModule.label().getPackageName());
}
- builder.setPreferredDependencyPredicate(FileType.of((String) compileOneFiletype));
+ ImmutableList<String> filesTypes =
+ Sequence.cast(compileOneFiletype, String.class, "compile_one_filetype")
+ .getImmutableList();
+ builder.setPreferredDependencyPredicate(FileType.of(filesTypes));
}
StarlarkRuleFunction starlarkRuleFunction =
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java
index a5864da..37417f1 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java
@@ -344,7 +344,7 @@
name = "compile_one_filetype",
defaultValue = "None",
allowedTypes = {
- @ParamType(type = String.class),
+ @ParamType(type = Sequence.class, generic1 = String.class),
@ParamType(type = NoneType.class),
},
named = true,
diff --git a/src/main/starlark/builtins_bzl/common/java/java_library.bzl b/src/main/starlark/builtins_bzl/common/java/java_library.bzl
index b927112..1a928a6 100644
--- a/src/main/starlark/builtins_bzl/common/java/java_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/java_library.bzl
@@ -69,5 +69,5 @@
"classjar": "lib%{name}.jar",
"sourcejar": "lib%{name}-src.jar",
},
- compile_one_filetype = ".java",
+ compile_one_filetype = [".java"],
)