Introduce flag --incompatible_static_name_resolution_in_build_files
Implements https://github.com/bazelbuild/bazel/issues/8022
When the flag is enabled, BUILD files are statically checked. This can find errors (undefined symbols) in code path that is not executed.
RELNOTES: Flag `--incompatible_static_name_resolution_in_build_files` is added. See https://github.com/bazelbuild/bazel/issues/8022
PiperOrigin-RevId: 243355609
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
index d4cb286..ce47ee6 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
@@ -176,6 +176,8 @@
public abstract boolean incompatibleStringJoinRequiresStrings();
+ public abstract boolean incompatibleStaticNameResolutionInBuildFiles();
+
public abstract boolean internalSkylarkFlagTestCanary();
@@ -227,6 +229,7 @@
.incompatibleNoTransitiveLoads(true)
.incompatibleRemapMainRepo(false)
.incompatibleRemoveNativeMavenJar(false)
+ .incompatibleStaticNameResolutionInBuildFiles(false)
.incompatibleStringJoinRequiresStrings(false)
.internalSkylarkFlagTestCanary(false)
.incompatibleDoNotSplitLinkingCmdline(false)
@@ -301,6 +304,7 @@
public abstract Builder incompatibleStringJoinRequiresStrings(boolean value);
+ public abstract Builder incompatibleStaticNameResolutionInBuildFiles(boolean value);
public abstract Builder internalSkylarkFlagTestCanary(boolean value);