Fix KeepInfoCollectionExported export and import

Change-Id: I3ce163d7cda1eebbf30181610919ba20ec4bec07
diff --git a/src/main/java/com/android/tools/r8/shaking/KeepInfoCollectionExported.java b/src/main/java/com/android/tools/r8/shaking/KeepInfoCollectionExported.java
index 3c5e311..1350d9e 100644
--- a/src/main/java/com/android/tools/r8/shaking/KeepInfoCollectionExported.java
+++ b/src/main/java/com/android/tools/r8/shaking/KeepInfoCollectionExported.java
@@ -177,7 +177,9 @@
       String methodName = holderAndName.substring(nameIndex + 1);
       String[] argStrings = substring.substring(brace + 1, substring.length() - 1).split(", ");
       TypeReference[] args =
-          ArrayUtils.map(argStrings, Reference::typeFromTypeName, new TypeReference[0]);
+          argStrings.length == 1 && argStrings[0].isEmpty()
+              ? new TypeReference[0]
+              : ArrayUtils.map(argStrings, Reference::typeFromTypeName, new TypeReference[0]);
       return Reference.method(holder, methodName, Arrays.asList(args), returnType);
     }
 
diff --git a/src/main/java/com/android/tools/r8/shaking/KeepMethodInfo.java b/src/main/java/com/android/tools/r8/shaking/KeepMethodInfo.java
index 3a21792..597b016 100644
--- a/src/main/java/com/android/tools/r8/shaking/KeepMethodInfo.java
+++ b/src/main/java/com/android/tools/r8/shaking/KeepMethodInfo.java
@@ -344,7 +344,6 @@
         && parameterAnnotationsInfo == other.internalParameterAnnotationsInfo();
   }
 
-
   @Override
   public int hashCodeNoAnnotations() {
     assert parameterAnnotationsInfo.isTopOrBottom();
diff --git a/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java b/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java
index 963ea23..5e1fbf8 100644
--- a/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java
+++ b/src/test/java/com/android/tools/r8/assistant/JavaLangClassJsonTest.java
@@ -24,6 +24,7 @@
 import com.android.tools.r8.shaking.KeepInfoCollectionExported;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.Box;
+import java.io.File;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -206,6 +207,13 @@
     assertTrue(updater22.isKeptBy(keepInfoCollectionExported));
     assertTrue(updater23.isKeptBy(keepInfoCollectionExported));
     assertTrue(updater24.isKeptBy(keepInfoCollectionExported));
+
+    File folder = temp.newFolder();
+    keepInfoCollectionExported.exportToDirectory(folder.toPath());
+    KeepInfoCollectionExported keepInfoCollectionExported2 =
+        KeepInfoCollectionExported.parse(folder.toPath());
+
+    assertEquals(keepInfoCollectionExported, keepInfoCollectionExported2);
   }
 
   public static class Instrumentation extends ReflectiveOperationJsonLogger {