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);