Enable --incompatible_disallow_filetype by default.
Fixes #5831
RELNOTES: --incompatible_disallow_filetype is enabled by default.
PiperOrigin-RevId: 233808118
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
index 30ea540..bb92321 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
@@ -276,15 +276,14 @@
@Option(
name = "incompatible_disallow_filetype",
- defaultValue = "false",
+ defaultValue = "true",
documentationCategory = OptionDocumentationCategory.SKYLARK_SEMANTICS,
effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
metadataTags = {
OptionMetadataTag.INCOMPATIBLE_CHANGE,
OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
},
- help = "If set to true, function `FileType` is not available."
- )
+ help = "If set to true, function `FileType` is not available.")
public boolean incompatibleDisallowFileType;
@Option(
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
index 3a7882a..de054dc 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
@@ -222,7 +222,7 @@
.incompatibleDisableObjcProviderResources(false)
.incompatibleDisallowDataTransition(true)
.incompatibleDisallowDictPlus(false)
- .incompatibleDisallowFileType(false)
+ .incompatibleDisallowFileType(true)
.incompatibleDisallowLegacyJavaProvider(false)
.incompatibleDisallowLegacyJavaInfo(false)
.incompatibleDisallowLoadLabelsToCrossPackageBoundaries(false)
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkFileHelperTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkFileHelperTest.java
index 304e478..7f474f9 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkFileHelperTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkFileHelperTest.java
@@ -16,8 +16,6 @@
import static com.google.common.truth.Truth.assertThat;
-import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.skylark.SkylarkRuleContext;
import com.google.devtools.build.lib.skylark.util.SkylarkTestCase;
import org.junit.Before;
@@ -42,23 +40,6 @@
" outs = ['c.txt'])");
}
- @SuppressWarnings("unchecked")
- @Test
- public void testFilterPasses() throws Exception {
- SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
- Object result =
- evalRuleContextCode(ruleContext, "FileType(['.img']).filter(ruleContext.files.srcs)");
- assertThat(ActionsTestUtil.baseNamesOf((Iterable<Artifact>) result)).isEqualTo("b.img");
- }
-
- @Test
- public void testFilterFiltersFilesOut() throws Exception {
- SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
- Object result =
- evalRuleContextCode(ruleContext, "FileType(['.xyz']).filter(ruleContext.files.srcs)");
- assertThat(((Iterable<?>) result)).isEmpty();
- }
-
@Test
public void testArtifactPath() throws Exception {
SkylarkRuleContext ruleContext = createRuleContext("//foo:foo");
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 d509ad7..9fe3d20 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
@@ -25,7 +25,6 @@
import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
import com.google.devtools.build.lib.analysis.skylark.SkylarkAttr;
import com.google.devtools.build.lib.analysis.skylark.SkylarkAttr.Descriptor;
-import com.google.devtools.build.lib.analysis.skylark.SkylarkFileType;
import com.google.devtools.build.lib.analysis.skylark.SkylarkRuleClassFunctions.SkylarkRuleFunction;
import com.google.devtools.build.lib.analysis.skylark.SkylarkRuleContext;
import com.google.devtools.build.lib.cmdline.Label;
@@ -247,13 +246,6 @@
assertThat(attr.isSingleArtifact()).isTrue();
}
- @Test
- public void testAttrWithSkylarkFileType() throws Exception {
- Attribute attr = buildAttribute("a1", "attr.label_list(allow_files = FileType(['.xml']))");
- assertThat(attr.getAllowedFileTypesPredicate().apply("a.xml")).isTrue();
- assertThat(attr.getAllowedFileTypesPredicate().apply("a.txt")).isFalse();
- }
-
private static SkylarkProviderIdentifier legacy(String legacyId) {
return SkylarkProviderIdentifier.forLegacy(legacyId);
}
@@ -860,13 +852,6 @@
}
@Test
- public void testFileType() throws Exception {
- Object result = evalRuleClassCode("FileType(['.css'])");
- SkylarkFileType fts = (SkylarkFileType) result;
- assertThat(fts.getExtensions()).isEqualTo(ImmutableList.of(".css"));
- }
-
- @Test
public void testFileTypeIsDisabled() throws Exception {
SkylarkSemantics semantics =
SkylarkSemantics.DEFAULT_SEMANTICS.toBuilder().incompatibleDisallowFileType(true).build();