Add TransitiveTargetKey.toString to aid debugging

Also add a bit more details to ErrorInfo.

PiperOrigin-RevId: 285738697
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetKey.java
index 410b48b..d3253cc 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetKey.java
@@ -13,6 +13,7 @@
 // limitations under the License.
 package com.google.devtools.build.lib.skyframe;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@@ -53,6 +54,11 @@
   }
 
   @Override
+  public String toString() {
+    return MoreObjects.toStringHelper(this).add("label", label).toString();
+  }
+
+  @Override
   public int hashCode() {
     return 31 * functionName().hashCode() + label.hashCode();
   }
diff --git a/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java b/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java
index 0451008..d09fc6d 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ErrorInfo.java
@@ -62,7 +62,8 @@
   /** Create an ErrorInfo from a collection of existing errors. */
   public static ErrorInfo fromChildErrors(SkyKey currentValue, Collection<ErrorInfo> childErrors) {
     Preconditions.checkNotNull(currentValue, "currentValue must not be null");
-    Preconditions.checkState(!childErrors.isEmpty(), "childErrors may not be empty");
+    Preconditions.checkState(
+        !childErrors.isEmpty(), "childErrors may not be empty %s", currentValue);
 
     NestedSetBuilder<SkyKey> rootCausesBuilder = NestedSetBuilder.stableOrder();
     ImmutableList.Builder<CycleInfo> cycleBuilder = ImmutableList.builder();