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
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index b13d64a..307139f 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -51,11 +51,13 @@
import com.google.devtools.build.lib.syntax.BuildFileAST;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.Environment;
+import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.syntax.SkylarkDict;
import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkList.Tuple;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.SkylarkSemantics;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.util.FileTypeSet;
@@ -793,6 +795,15 @@
}
@Test
+ public void testFileTypeIsDisabled() throws Exception {
+ SkylarkSemantics semantics =
+ SkylarkSemantics.DEFAULT_SEMANTICS.toBuilder().incompatibleDisallowFileType(true).build();
+ EvalException expected =
+ assertThrows(EvalException.class, () -> evalRuleClassCode(semantics, "FileType(['.css'])"));
+ assertThat(expected).hasMessageThat().contains("FileType function is not available.");
+ }
+
+ @Test
public void testRuleInheritsBaseRuleAttributes() throws Exception {
evalAndExport("def impl(ctx): return None", "r1 = rule(impl)");
RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass();