Fix Skylark outputs to properly report errors in template placeholders.

Fixes #1479.

PiperOrigin-RevId: 175979487
diff --git a/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java
index c0e098a..b0a3a23 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java
@@ -136,13 +136,17 @@
       String[] expectedSubstitutions,
       String[] expectedFoundPlaceholders)
       throws Exception {
-    List<String> foundAttributes = new ArrayList<>();
-    List<String> substitutions =
-        ImplicitOutputsFunction.substitutePlaceholderIntoTemplate(
-            template, null, attrValues, foundAttributes);
-    assertThat(foundAttributes)
+    // Directly call into ParsedTemplate in order to access the attribute names.
+    ImplicitOutputsFunction.ParsedTemplate parsedTemplate =
+        ImplicitOutputsFunction.ParsedTemplate.parse(template);
+
+    assertThat(parsedTemplate.attributeNames())
         .containsExactlyElementsIn(Arrays.asList(expectedFoundPlaceholders))
         .inOrder();
+
+    // Test the actual substitution code.
+    List<String> substitutions =
+        ImplicitOutputsFunction.substitutePlaceholderIntoTemplate(template, null, attrValues);
     assertThat(substitutions)
         .containsExactlyElementsIn(Arrays.asList(expectedSubstitutions));
   }