New incompatible flag to disable PACKAGE_NAME and REPOSITORY_NAME.

RELNOTES[INC]:
  Variables PACKAGE_NAME and REPOSITORY_NAME are deprecated in favor of
  functions `package_name()` and `repository_name()`.
  https://docs.bazel.build/versions/master/skylark/lib/native.html#package_name

PiperOrigin-RevId: 190657188
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java b/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java
index e201a0e..419cc99 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Identifier.java
@@ -96,6 +96,26 @@
     if (name.equals("$error$")) {
       return new EvalException(getLocation(), "contains syntax error(s)", true);
     }
+
+    if (name.equals("PACKAGE_NAME")) {
+      return new EvalException(
+          getLocation(),
+          "The value 'PACKAGE_NAME' has been removed in favor of 'package_name()', "
+              + "please use the latter ("
+              + "https://docs.bazel.build/versions/master/skylark/lib/native.html#package_name). "
+              + "You can temporarily allow the old name "
+              + "by using --incompatiblePackageNameIsAFunction=false");
+    }
+    if (name.equals("REPOSITORY_NAME")) {
+      return new EvalException(
+          getLocation(),
+          "The value 'REPOSITORY_NAME' has been removed in favor of 'repository_name()', "
+              + "please use the latter ("
+              + "https://docs.bazel.build/versions/master/skylark/lib/native.html#repository_name)."
+              + " You can temporarily allow the old name "
+              + "by using --incompatiblePackageNameIsAFunction=false");
+    }
+
     String suggestion = SpellChecker.didYouMean(name, symbols);
     return new EvalException(getLocation(), "name '" + name + "' is not defined" + suggestion);
   }
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 05208dc..46f3f1a 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
@@ -40,17 +40,31 @@
 
   // <== Add new options here in alphabetic order ==>
   public abstract boolean incompatibleBzlDisallowLoadAfterStatement();
+
   public abstract boolean incompatibleDepsetIsNotIterable();
+
   public abstract boolean incompatibleDepsetUnion();
+
   public abstract boolean incompatibleDisableGlobTracking();
+
   public abstract boolean incompatibleDisableObjcProviderResources();
+
   public abstract boolean incompatibleDisallowDictPlus();
+
   public abstract boolean incompatibleDisallowThreeArgVardef();
+
   public abstract boolean incompatibleDisallowToplevelIfStatement();
+
   public abstract boolean incompatibleNewActionsApi();
+
+  public abstract boolean incompatiblePackageNameIsAFunction();
+
   public abstract boolean incompatibleRemoveNativeGitRepository();
+
   public abstract boolean incompatibleRemoveNativeHttpArchive();
+
   public abstract boolean incompatibleStringIsNotIterable();
+
   public abstract boolean internalSkylarkFlagTestCanary();
 
   /** Returns a {@link Builder} initialized with the values of this instance. */
@@ -77,6 +91,7 @@
           .incompatibleDisallowThreeArgVardef(false)
           .incompatibleDisallowToplevelIfStatement(true)
           .incompatibleNewActionsApi(false)
+          .incompatiblePackageNameIsAFunction(false)
           .incompatibleRemoveNativeGitRepository(false)
           .incompatibleRemoveNativeHttpArchive(false)
           .incompatibleStringIsNotIterable(false)
@@ -89,17 +104,31 @@
 
     // <== Add new options here in alphabetic order ==>
     public abstract Builder incompatibleBzlDisallowLoadAfterStatement(boolean value);
+
     public abstract Builder incompatibleDepsetIsNotIterable(boolean value);
+
     public abstract Builder incompatibleDepsetUnion(boolean value);
+
     public abstract Builder incompatibleDisableGlobTracking(boolean value);
+
     public abstract Builder incompatibleDisableObjcProviderResources(boolean value);
+
     public abstract Builder incompatibleDisallowDictPlus(boolean value);
+
     public abstract Builder incompatibleDisallowThreeArgVardef(boolean value);
+
     public abstract Builder incompatibleDisallowToplevelIfStatement(boolean value);
+
     public abstract Builder incompatibleNewActionsApi(boolean value);
+
+    public abstract Builder incompatiblePackageNameIsAFunction(boolean value);
+
     public abstract Builder incompatibleRemoveNativeGitRepository(boolean value);
+
     public abstract Builder incompatibleRemoveNativeHttpArchive(boolean value);
+
     public abstract Builder incompatibleStringIsNotIterable(boolean value);
+
     public abstract Builder internalSkylarkFlagTestCanary(boolean value);
 
     public abstract SkylarkSemantics build();