Improve error reporting from RecursivePackageProviderBackedTargetPatternResolver#bulkGetTargetsInPackage by checking if they are in error first.

PiperOrigin-RevId: 454984020
Change-Id: I8b74ca76dfe8c48583f0dd3b30e98f7c4067843b
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
index 1d14e1a..341666f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
@@ -141,6 +141,14 @@
         rulesOnly ? FilteringPolicies.and(FilteringPolicies.RULES_ONLY, policy) : policy;
     try {
       Package pkg = getPackage(packageIdentifier);
+      if (pkg.containsErrors()) {
+        eventHandler.handle(
+            Event.error(
+                "package contains errors: "
+                    + pkg.getNameFragment()
+                    + ": "
+                    + pkg.getFailureDetail().getMessage()));
+      }
       return TargetPatternResolverUtil.resolvePackageTargets(pkg, actualPolicy);
     } catch (NoSuchThingException e) {
       String message =
@@ -162,6 +170,14 @@
       ImmutableMap.Builder<PackageIdentifier, Collection<Target>> result = ImmutableMap.builder();
       for (PackageIdentifier pkgId : pkgIds) {
         Package pkg = pkgs.get(pkgId);
+        if (pkg.containsErrors()) {
+          eventHandler.handle(
+              Event.error(
+                  "package contains errors: "
+                      + pkg.getNameFragment()
+                      + ": "
+                      + pkg.getFailureDetail().getMessage()));
+        }
         result.put(pkgId, TargetPatternResolverUtil.resolvePackageTargets(pkg, policy));
       }
       return result.buildOrThrow();