diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
index 0a7f0be..9c4c2d1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
@@ -176,7 +176,7 @@
           // The target itself and run_under both run on the same machine. We use the DATA config
           // here because the run_under acts like a data dependency (e.g. no LIPO optimization).
           .add(attr(":run_under", LABEL).cfg(DATA).value(RUN_UNDER)
-              .skipConstraintsCheck())
+              .skipPrereqValidatorCheck())
           .build();
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 4cdc269..10395cb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1578,7 +1578,7 @@
       validateDirectPrerequisiteType(prerequisite, attribute);
       validateDirectPrerequisiteFileTypes(prerequisite, attribute);
       validateMandatoryProviders(prerequisite, attribute);
-      if (attribute.performConstraintsCheck()) {
+      if (attribute.performPrereqValidatorCheck()) {
         prerequisiteValidator.validate(this, prerequisite, attribute);
       }
     }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
index cb82d9b..94dbcf9 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
@@ -375,7 +375,7 @@
           .add(attr(":lipo_context_collector", LABEL)
               .cfg(CppTransition.LIPO_COLLECTOR)
               .value(LIPO_CONTEXT_COLLECTOR)
-              .skipConstraintsCheck())
+              .skipPrereqValidatorCheck())
           .build();
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index b94b172..a63da70 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -204,9 +204,11 @@
     NONCONFIGURABLE,
 
     /**
-     * Whether we should skip constraints checks for licenses, visibility, etc.
+     * Whether we should skip dependency validation checks done by
+     * {@link com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.PrerequisiteValidator}
+     * (for visibility, etc.).
      */
-    SKIP_CONSTRAINTS_CHECKS,
+    SKIP_PREREQ_VALIDATOR_CHECKS,
   }
 
   // TODO(bazel-team): modify this interface to extend Predicate and have an extra error
@@ -527,10 +529,12 @@
     }
 
     /**
-     * Disables constraints and visibility checks.
+     * Disables dependency checks done by
+     * {@link com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.PrerequisiteValidator}.
      */
-    public Builder<TYPE> skipConstraintsCheck() {
-      return setPropertyFlag(PropertyFlag.SKIP_CONSTRAINTS_CHECKS, "skip_constraints_checks");
+    public Builder<TYPE> skipPrereqValidatorCheck() {
+      return setPropertyFlag(PropertyFlag.SKIP_PREREQ_VALIDATOR_CHECKS,
+          "skip_prereq_validator_checks");
     }
 
     /**
@@ -1251,8 +1255,8 @@
     return getPropertyFlag(PropertyFlag.CHECK_ALLOWED_VALUES);
   }
 
-  public boolean performConstraintsCheck() {
-    return !getPropertyFlag(PropertyFlag.SKIP_CONSTRAINTS_CHECKS);
+  public boolean performPrereqValidatorCheck() {
+    return !getPropertyFlag(PropertyFlag.SKIP_PREREQ_VALIDATOR_CHECKS);
   }
 
   /**
