langtools/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java
changeset 939 38e24969c7e9
parent 867 1dff24b5f407
--- a/langtools/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java	Thu Jul 24 11:12:41 2008 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/DiagnosticFormatter.java	Thu Jul 24 19:06:57 2008 +0100
@@ -25,6 +25,7 @@
 
 package com.sun.tools.javac.util;
 
+import java.util.Collection;
 import javax.tools.JavaFileObject;
 
 import com.sun.tools.javac.file.JavacFileManager;
@@ -145,6 +146,8 @@
             }
             else if (arg instanceof JavaFileObject)
                 sb.append(JavacFileManager.getJavacBaseFileName((JavaFileObject) arg));
+            else if (arg instanceof Collection<?>)
+                sb.append(convert((Collection<?>)arg));
             else
                 sb.append(arg);
             sep = ", ";
@@ -152,6 +155,18 @@
         return sb.toString();
     }
 
+    static <T> List<T> convert(Collection<T> c) {
+        if (c instanceof List<?>)
+            return (List<T>)c;
+        else {
+            List<T> l = List.<T>nil();
+            for (T t : c) {
+                l = l.prepend(t);
+            }
+            return l.reverse();
+        }
+    }
+
     private String format_std(JCDiagnostic d) {
         DiagnosticSource source = d.getDiagnosticSource();
         DiagnosticType type = d.getType();