PiperOrigin-RevId: 158274860
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java b/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java
index 38f163f..43667c4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LanguageDependentFragment.java
@@ -18,7 +18,6 @@
 import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-
 import java.util.Set;
 
 /**
@@ -82,27 +81,35 @@
    * Routines for verifying that dependency provide the right output.
    */
   public static final class Checker {
-    /**
-     * Checks that given dep supports the given language.
-     */
+    /** Checks that given dep supports the given language. */
     public static boolean depSupportsLanguage(
-        RuleContext context, LanguageDependentFragment dep, LibraryLanguage language) {
+        RuleContext context,
+        LanguageDependentFragment dep,
+        LibraryLanguage language,
+        String attrName) {
       if (dep.getSupportedLanguages().contains(language)) {
         return true;
       } else {
         context.attributeError(
-            "deps", String.format("'%s' does not produce output for %s", dep.getLabel(), language));
+            attrName,
+            String.format("'%s' does not produce output for %s", dep.getLabel(), language));
         return false;
       }
     }
 
     /**
      * Checks that all LanguageDependentFragment support the given language.
+     *
+     * @param attrNames names of attributes whose contents should be checked for supported
+     *     languages, e.g., "deps".
      */
-    public static void depsSupportsLanguage(RuleContext context, LibraryLanguage language) {
-      for (LanguageDependentFragment dep :
-               context.getPrerequisites("deps", Mode.TARGET, LanguageDependentFragment.class)) {
-        depSupportsLanguage(context, dep, language);
+    public static void depsSupportsLanguage(
+        RuleContext context, LibraryLanguage language, Iterable<String> attrNames) {
+      for (String attrName : attrNames) {
+        for (LanguageDependentFragment dep :
+            context.getPrerequisites(attrName, Mode.TARGET, LanguageDependentFragment.class)) {
+          depSupportsLanguage(context, dep, language, attrName);
+        }
       }
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
index abb218d..ffdacd3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
@@ -942,7 +942,7 @@
       for (LanguageDependentFragment dep :
           AnalysisUtils.getProviders(deps, LanguageDependentFragment.class)) {
         LanguageDependentFragment.Checker.depSupportsLanguage(
-            ruleContext, dep, CppRuleClasses.LANGUAGE);
+            ruleContext, dep, CppRuleClasses.LANGUAGE, "deps");
       }
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
index 3ea0849..5ffa4dc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -212,7 +212,8 @@
       }
     }
 
-    LanguageDependentFragment.Checker.depsSupportsLanguage(ruleContext, PyRuleClasses.LANGUAGE);
+    LanguageDependentFragment.Checker.depsSupportsLanguage(
+        ruleContext, PyRuleClasses.LANGUAGE, ImmutableList.of("deps"));
     return convertedFiles != null
         ? ImmutableList.copyOf(convertedFiles.values())
         : sourceFiles;