aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2018-04-13 06:09:30 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-13 06:10:29 -0700
commit707acfeecf60ef622b745741e76bf47717b1b480 (patch)
tree5cab49a70b5e3380417c4817174d95d5fb0512b0 /src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
parent8738794b0497e240c9b41faefe46a7e790fc0ab7 (diff)
Introduce `--incompatible_disallow_filetype` to remove the `FileType` function.
RELNOTES: `FileType` is deprecated and will be removed soon. Try the `--incompatible_disallow_filetype` flag to ensure your code is forward-compatible. PiperOrigin-RevId: 192758063
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
index 28ae658324..a612326495 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -1087,11 +1087,21 @@ public class SkylarkRuleClassFunctions {
defaultValue = "[]",
doc = "a list of the accepted file extensions."
)
- }
+ },
+ useLocation = true,
+ useEnvironment = true
)
private static final BuiltinFunction fileType =
new BuiltinFunction("FileType") {
- public SkylarkFileType invoke(SkylarkList types) throws EvalException {
+ public SkylarkFileType invoke(SkylarkList types, Location loc, Environment env)
+ throws EvalException {
+ if (env.getSemantics().incompatibleDisallowFileType()) {
+ throw new EvalException(
+ loc,
+ "FileType function is not available. You may use a list of strings instead. "
+ + "You can temporarily reenable the function by passing the flag "
+ + "--incompatible_disallow_filetype=false");
+ }
return SkylarkFileType.of(types.getContents(String.class, "types"));
}
};