Fix toString method for ProguardClassNameList.

Bug:
Change-Id: Idd9252304c422453aaba5783e1c79a0c74c8ad9c
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardClassNameList.java b/src/main/java/com/android/tools/r8/shaking/ProguardClassNameList.java
index 3383b7d..cd1c5fc 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardClassNameList.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardClassNameList.java
@@ -58,6 +58,13 @@
 
   public abstract void writeTo(StringBuilder builder);
 
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    writeTo(builder);
+    return builder.toString();
+  }
+
   public abstract List<DexType> asSpecificDexTypes();
 
   public abstract boolean matches(DexType type);
@@ -109,10 +116,10 @@
     public void writeTo(StringBuilder builder) {
       boolean first = true;
       for (ProguardTypeMatcher className : classNames) {
-        builder.append(className);
         if (!first) {
           builder.append(',');
         }
+        builder.append(className);
         first = false;
       }
     }
@@ -149,13 +156,13 @@
     public void writeTo(StringBuilder builder) {
       boolean first = true;
       for (Entry<ProguardTypeMatcher> className : classNames.object2BooleanEntrySet()) {
+        if (!first) {
+          builder.append(',');
+        }
         if (className.getBooleanValue()) {
           builder.append('!');
         }
         builder.append(className.getKey().toString());
-        if (!first) {
-          builder.append(',');
-        }
         first = false;
       }
     }