Add Class method/field/constructor missing methods

Change-Id: I646a4d9ecc0a5e4e7b4ee20afbaad42a15372ab2
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/EmptyReflectiveOperationReceiver.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/EmptyReflectiveOperationReceiver.java
index d0a7baf..3119f4c 100644
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/EmptyReflectiveOperationReceiver.java
+++ b/src/assistant/java/com/android/tools/r8/assistant/runtime/EmptyReflectiveOperationReceiver.java
@@ -31,20 +31,38 @@
       Stack stack, Class<?> clazz, String method, Class<?>... parameters) {}
 
   @Override
+  public void onClassGetDeclaredMethods(Stack stack, Class<?> clazz) {}
+
+  @Override
   public void onClassGetDeclaredField(Stack stack, Class<?> clazz, String fieldName) {}
 
   @Override
-  public void onClassGetDeclaredMethods(Stack stack, Class<?> clazz) {}
+  public void onClassGetDeclaredFields(Stack stack, Class<?> clazz) {}
+
+  @Override
+  public void onClassGetDeclaredConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {}
+
+  @Override
+  public void onClassGetDeclaredConstructors(Stack stack, Class<?> clazz) {}
 
   @Override
   public void onClassGetMethod(
       Stack stack, Class<?> clazz, String method, Class<?>... parameters) {}
 
   @Override
+  public void onClassGetMethods(Stack stack, Class<?> clazz) {}
+
+  @Override
   public void onClassGetField(Stack stack, Class<?> clazz, String fieldName) {}
 
   @Override
-  public void onClassGetMethods(Stack stack, Class<?> clazz) {}
+  public void onClassGetFields(Stack stack, Class<?> clazz) {}
+
+  @Override
+  public void onClassGetConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {}
+
+  @Override
+  public void onClassGetConstructors(Stack stack, Class<?> clazz) {}
 
   @Override
   public void onClassGetName(Stack stack, Class<?> clazz, NameLookupType lookupType) {}
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationLogger.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationLogger.java
index 71f8b99..51190ad 100644
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationLogger.java
+++ b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationLogger.java
@@ -17,15 +17,39 @@
     System.out.println("Reflectively created new instance of " + clazz.getName());
   }
 
-  @Override
-  public void onClassGetDeclaredMethod(
-      Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
-    System.out.println("Reflectively got declared method " + method + " on " + clazz.getName());
+  private String printMethod(String method, Class<?>... parameters) {
+    return method + printParameters(parameters);
+  }
+
+  private String printConstructor(Class<?>... parameters) {
+    return "<init>" + printParameters(parameters);
+  }
+
+  private String printParameters(Class<?>... parameters) {
+    if (parameters.length == 0) {
+      return "()";
+    }
+    StringBuilder sb = new StringBuilder();
+    sb.append("(");
+    Class<?> first = parameters[0];
+    for (Class<?> parameter : parameters) {
+      if (parameter != first) {
+        sb.append(", ");
+      }
+      sb.append(parameter.getName());
+    }
+    sb.append(")");
+    return sb.toString();
   }
 
   @Override
-  public void onClassGetDeclaredField(Stack stack, Class<?> clazz, String fieldName) {
-    System.out.println("Reflectively got declared field " + fieldName + " on " + clazz.getName());
+  public void onClassGetDeclaredMethod(
+      Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
+    System.out.println(
+        "Reflectively got declared method "
+            + printMethod(method, parameters)
+            + " on "
+            + clazz.getName());
   }
 
   @Override
@@ -34,8 +58,38 @@
   }
 
   @Override
+  public void onClassGetDeclaredField(Stack stack, Class<?> clazz, String fieldName) {
+    System.out.println("Reflectively got declared field " + fieldName + " on " + clazz.getName());
+  }
+
+  @Override
+  public void onClassGetDeclaredFields(Stack stack, Class<?> clazz) {
+    System.out.println("Reflectively got declared fields on " + clazz.getName());
+  }
+
+  @Override
+  public void onClassGetDeclaredConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {
+    System.out.println(
+        "Reflectively got declared constructor "
+            + printConstructor(parameters)
+            + " on "
+            + clazz.getName());
+  }
+
+  @Override
+  public void onClassGetDeclaredConstructors(Stack stack, Class<?> clazz) {
+    System.out.println("Reflectively got declared constructors on " + clazz.getName());
+  }
+
+  @Override
   public void onClassGetMethod(Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
-    System.out.println("Reflectively got method " + method + " on " + clazz.getName());
+    System.out.println(
+        "Reflectively got method " + printMethod(method, parameters) + " on " + clazz.getName());
+  }
+
+  @Override
+  public void onClassGetMethods(Stack stack, Class<?> clazz) {
+    System.out.println("Reflectively got methods on " + clazz.getName());
   }
 
   @Override
@@ -44,8 +98,19 @@
   }
 
   @Override
-  public void onClassGetMethods(Stack stack, Class<?> clazz) {
-    System.out.println("Reflectively got methods on " + clazz.getName());
+  public void onClassGetFields(Stack stack, Class<?> clazz) {
+    System.out.println("Reflectively got fields on " + clazz.getName());
+  }
+
+  @Override
+  public void onClassGetConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {
+    System.out.println(
+        "Reflectively got constructor " + printConstructor(parameters) + " on " + clazz.getName());
+  }
+
+  @Override
+  public void onClassGetConstructors(Stack stack, Class<?> clazz) {
+    System.out.println("Reflectively got constructors on " + clazz.getName());
   }
 
   @Override
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationReceiver.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationReceiver.java
index 69088f1..cbd5361 100644
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationReceiver.java
+++ b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOperationReceiver.java
@@ -20,15 +20,27 @@
 
   void onClassGetDeclaredMethod(Stack stack, Class<?> clazz, String method, Class<?>... parameters);
 
+  void onClassGetDeclaredMethods(Stack stack, Class<?> clazz);
+
   void onClassGetDeclaredField(Stack stack, Class<?> clazz, String fieldName);
 
-  void onClassGetDeclaredMethods(Stack stack, Class<?> clazz);
+  void onClassGetDeclaredFields(Stack stack, Class<?> clazz);
+
+  void onClassGetDeclaredConstructor(Stack stack, Class<?> clazz, Class<?>... parameters);
+
+  void onClassGetDeclaredConstructors(Stack stack, Class<?> clazz);
 
   void onClassGetMethod(Stack stack, Class<?> clazz, String method, Class<?>... parameters);
 
+  void onClassGetMethods(Stack stack, Class<?> clazz);
+
   void onClassGetField(Stack stack, Class<?> clazz, String fieldName);
 
-  void onClassGetMethods(Stack stack, Class<?> clazz);
+  void onClassGetFields(Stack stack, Class<?> clazz);
+
+  void onClassGetConstructor(Stack stack, Class<?> clazz, Class<?>... parameters);
+
+  void onClassGetConstructors(Stack stack, Class<?> clazz);
 
   void onClassGetName(Stack stack, Class<?> clazz, NameLookupType lookupType);
 
diff --git a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java
index aaacd87..3ae9519 100644
--- a/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java
+++ b/src/assistant/java/com/android/tools/r8/assistant/runtime/ReflectiveOracle.java
@@ -71,14 +71,6 @@
     getInstance().onClassNewInstance(Stack.createStack(), clazz);
   }
 
-  public static void onClassGetDeclaredMethod(Class<?> clazz, String name, Class<?>... parameters) {
-    getInstance().onClassGetDeclaredMethod(Stack.createStack(), clazz, name, parameters);
-  }
-
-  public static void onClassGetDeclaredMethods(Class<?> clazz) {
-    getInstance().onClassGetDeclaredMethods(Stack.createStack(), clazz);
-  }
-
   public static void onClassForName(String className) {
     // The last parameter is implicitly the caller's holder class class loader.
     getInstance().onClassForName(Stack.createStack(), className, true, null);
@@ -88,10 +80,54 @@
     getInstance().onClassForName(Stack.createStack(), className, initialize, classLoader);
   }
 
+  public static void onClassGetDeclaredMethod(Class<?> clazz, String name, Class<?>... parameters) {
+    getInstance().onClassGetDeclaredMethod(Stack.createStack(), clazz, name, parameters);
+  }
+
+  public static void onClassGetDeclaredMethods(Class<?> clazz) {
+    getInstance().onClassGetDeclaredMethods(Stack.createStack(), clazz);
+  }
+
   public static void onClassGetDeclaredField(Class<?> clazz, String fieldName) {
     getInstance().onClassGetDeclaredField(Stack.createStack(), clazz, fieldName);
   }
 
+  public static void onClassGetDeclaredFields(Class<?> clazz) {
+    getInstance().onClassGetDeclaredFields(Stack.createStack(), clazz);
+  }
+
+  public static void onClassGetDeclaredConstructor(Class<?> clazz, Class<?>... parameters) {
+    getInstance().onClassGetDeclaredConstructor(Stack.createStack(), clazz, parameters);
+  }
+
+  public static void onClassGetDeclaredConstructors(Class<?> clazz) {
+    getInstance().onClassGetDeclaredConstructors(Stack.createStack(), clazz);
+  }
+
+  public static void onClassGetMethod(Class<?> clazz, String name, Class<?>[] parameterTypes) {
+    getInstance().onClassGetMethod(Stack.createStack(), clazz, name, parameterTypes);
+  }
+
+  public static void onClassGetMethods(Class<?> clazz) {
+    getInstance().onClassGetMethods(Stack.createStack(), clazz);
+  }
+
+  public static void onClassGetField(Class<?> clazz, String name) {
+    getInstance().onClassGetField(Stack.createStack(), clazz, name);
+  }
+
+  public static void onClassGetFields(Class<?> clazz) {
+    getInstance().onClassGetFields(Stack.createStack(), clazz);
+  }
+
+  public static void onClassGetConstructor(Class<?> clazz, Class<?>... parameterTypes) {
+    getInstance().onClassGetConstructor(Stack.createStack(), clazz, parameterTypes);
+  }
+
+  public static void onClassGetConstructors(Class<?> clazz) {
+    getInstance().onClassGetConstructors(Stack.createStack(), clazz);
+  }
+
   public static void onClassGetName(Class<?> clazz) {
     getInstance().onClassGetName(Stack.createStack(), clazz, NameLookupType.NAME);
   }
@@ -172,18 +208,6 @@
     getInstance().onClassFlag(Stack.createStack(), clazz, ClassFlag.SYNTHETIC);
   }
 
-  public static void onClassGetMethods(Class<?> clazz) {
-    getInstance().onClassGetMethods(Stack.createStack(), clazz);
-  }
-
-  public static void onClassGetMethod(Class<?> clazz, String name, Class<?>[] parameterTypes) {
-    getInstance().onClassGetMethod(Stack.createStack(), clazz, name, parameterTypes);
-  }
-
-  public static void onClassGetField(Class<?> clazz, String name) {
-    getInstance().onClassGetField(Stack.createStack(), clazz, name);
-  }
-
   public static void onAtomicIntegerFieldUpdaterNewUpdater(Class<?> clazz, String name) {
     getInstance().onAtomicIntegerFieldUpdaterNewUpdater(Stack.createStack(), clazz, name);
   }
diff --git a/src/main/java/com/android/tools/r8/assistant/InstrumentedReflectiveMethodList.java b/src/main/java/com/android/tools/r8/assistant/InstrumentedReflectiveMethodList.java
index 75a08d7..0fa5ce6 100644
--- a/src/main/java/com/android/tools/r8/assistant/InstrumentedReflectiveMethodList.java
+++ b/src/main/java/com/android/tools/r8/assistant/InstrumentedReflectiveMethodList.java
@@ -34,13 +34,15 @@
         factory.classMethods.newInstance,
         getMethodReferenceWithClassParameter("onClassNewInstance"));
     builder.put(
-        factory.classMethods.getDeclaredMethod,
-        getMethodReferenceWithClassMethodNameAndParameters("onClassGetDeclaredMethod"));
-    builder.put(
         factory.classMethods.forName, getMethodReferenceWithStringParameter("onClassForName"));
     builder.put(
-        factory.classMethods.getDeclaredField,
-        getMethodReferenceWithClassAndStringParameter("onClassGetDeclaredField"));
+        factory.classMethods.forName3,
+        getMethodReferenceWithParameterTypes(
+            "onClassForName", factory.stringType, factory.booleanType, factory.classLoaderType));
+
+    builder.put(
+        factory.classMethods.getDeclaredMethod,
+        getMethodReferenceWithClassMethodNameAndParameters("onClassGetDeclaredMethod"));
     builder.put(
         factory.createMethod(
             factory.classType,
@@ -48,6 +50,56 @@
             "getDeclaredMethods"),
         getMethodReferenceWithClassParameter("onClassGetDeclaredMethods"));
     builder.put(
+        factory.classMethods.getDeclaredField,
+        getMethodReferenceWithClassAndStringParameter("onClassGetDeclaredField"));
+    builder.put(
+        factory.createMethod(
+            factory.classType,
+            factory.createProto(factory.createArrayType(1, factory.fieldType)),
+            "getDeclaredFields"),
+        getMethodReferenceWithClassParameter("onClassGetDeclaredFields"));
+    builder.put(
+        factory.classMethods.getDeclaredConstructor,
+        getMethodReferenceWithParameterTypes(
+            "onClassGetDeclaredConstructor", factory.classType, factory.classArrayType));
+    builder.put(
+        factory.createMethod(
+            factory.classType,
+            factory.createProto(factory.createArrayType(1, factory.constructorType)),
+            "getDeclaredConstructors"),
+        getMethodReferenceWithClassParameter("onClassGetDeclaredConstructors"));
+    builder.put(
+        factory.classMethods.getMethod,
+        getMethodReferenceWithParameterTypes(
+            "onClassGetMethod", factory.classType, factory.stringType, factory.classArrayType));
+    builder.put(
+        factory.createMethod(
+            factory.classType,
+            factory.createProto(factory.createArrayType(1, factory.methodType)),
+            "getMethods"),
+        getMethodReferenceWithClassParameter("onClassGetMethods"));
+    builder.put(
+        factory.classMethods.getField,
+        getMethodReferenceWithParameterTypes(
+            "onClassGetField", factory.classType, factory.stringType));
+    builder.put(
+        factory.createMethod(
+            factory.classType,
+            factory.createProto(factory.createArrayType(1, factory.fieldType)),
+            "getFields"),
+        getMethodReferenceWithClassParameter("onClassGetFields"));
+    builder.put(
+        factory.classMethods.getConstructor,
+        getMethodReferenceWithParameterTypes(
+            "onClassGetConstructor", factory.classType, factory.classArrayType));
+    builder.put(
+        factory.createMethod(
+            factory.classType,
+            factory.createProto(factory.createArrayType(1, factory.constructorType)),
+            "getConstructors"),
+        getMethodReferenceWithClassParameter("onClassGetConstructors"));
+
+    builder.put(
         factory.classMethods.getName, getMethodReferenceWithClassParameter("onClassGetName"));
     builder.put(
         factory.classMethods.getCanonicalName,
@@ -62,10 +114,6 @@
         factory.classMethods.getSuperclass,
         getMethodReferenceWithClassParameter("onClassGetSuperclass"));
     builder.put(
-        factory.classMethods.forName3,
-        getMethodReferenceWithParameterTypes(
-            "onClassForName", factory.stringType, factory.booleanType, factory.classLoaderType));
-    builder.put(
         factory.createMethod(
             factory.classType, factory.createProto(factory.classType), "getComponentType"),
         getMethodReferenceWithClassParameter("onClassGetComponentType"));
@@ -115,20 +163,8 @@
     builder.put(
         factory.createMethod(factory.classType, toBoolean, "isSynthetic"),
         getMethodReferenceWithClassParameter("onClassIsSynthetic"));
-    builder.put(
-        factory.classMethods.getMethod,
-        getMethodReferenceWithParameterTypes(
-            "onClassGetMethod", factory.classType, factory.stringType, factory.classArrayType));
-    builder.put(
-        factory.classMethods.getField,
-        getMethodReferenceWithParameterTypes(
-            "onClassGetField", factory.classType, factory.stringType));
-    builder.put(
-        factory.createMethod(
-            factory.classType,
-            factory.createProto(factory.createArrayType(1, factory.methodType)),
-            "getMethods"),
-        getMethodReferenceWithClassParameter("onClassGetMethods"));
+
+    // AtomicFieldUpdater methods.
 
     builder.put(
         factory.atomicFieldUpdaterMethods.intUpdater,
@@ -144,6 +180,8 @@
             factory.classType,
             factory.stringType));
 
+    // ServiceLoader methods.
+
     builder.put(
         factory.serviceLoaderMethods.load,
         getMethodReferenceWithClassParameter("onServiceLoaderLoad"));
@@ -155,6 +193,8 @@
         factory.serviceLoaderMethods.loadInstalled,
         getMethodReferenceWithClassParameter("onServiceLoaderLoadInstalled"));
 
+    // Proxy methods.
+
     builder.put(
         factory.proxyMethods.newProxyInstance,
         getMethodReferenceWithParameterTypes(
diff --git a/src/test/java/com/android/tools/r8/assistant/JavaLangClassTest.java b/src/test/java/com/android/tools/r8/assistant/JavaLangClassTest.java
index c7a5d13..d7a4f5b 100644
--- a/src/test/java/com/android/tools/r8/assistant/JavaLangClassTest.java
+++ b/src/test/java/com/android/tools/r8/assistant/JavaLangClassTest.java
@@ -37,8 +37,8 @@
         .compile()
         .run(parameters.getRuntime(), JavaLangClassTestClass.class)
         .assertSuccessWithOutputLines(
-            "5", "1", "9", "2", "3", "3", "4", "5", "6", "7", "8", "5", "1", "12", "13", "15", "22",
-            "20", "21");
+            "5", "1", "9", "2", "3", "3", "4", "32", "30", "31", "5", "6", "7", "8", "5", "1", "12",
+            "13", "15", "22", "33", "35", "20", "21", "34");
   }
 
   public static class Instrumentation extends EmptyReflectiveOperationReceiver {
@@ -79,14 +79,60 @@
     }
 
     @Override
+    public void onClassGetDeclaredMethods(Stack stack, Class<?> clazz) {
+      printNumIfTrue(clazz.getName().endsWith("Foo"), 4);
+    }
+
+    @Override
     public void onClassGetDeclaredField(Stack stack, Class<?> clazz, String fieldName) {
       printNumIfTrue(
           clazz.getName().endsWith("Foo") && (fieldName.equals("a") || fieldName.equals("b")), 3);
     }
 
     @Override
-    public void onClassGetDeclaredMethods(Stack stack, Class<?> clazz) {
-      printNumIfTrue(clazz.getName().endsWith("Foo"), 4);
+    public void onClassGetDeclaredFields(Stack stack, Class<?> clazz) {
+      printNumIfTrue(clazz.getName().endsWith("Foo"), 32);
+    }
+
+    @Override
+    public void onClassGetDeclaredConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {
+      printNumIfTrue(clazz.getName().endsWith("Foo"), 30);
+    }
+
+    @Override
+    public void onClassGetDeclaredConstructors(Stack stack, Class<?> clazz) {
+      printNumIfTrue(clazz.getName().endsWith("Foo"), 31);
+    }
+
+    @Override
+    public void onClassGetMethod(
+        Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
+      printNumIfTrue(clazz.getName().endsWith("Bar"), 20);
+    }
+
+    @Override
+    public void onClassGetMethods(Stack stack, Class<?> clazz) {
+      printNumIfTrue(clazz.getName().endsWith("Bar"), 22);
+    }
+
+    @Override
+    public void onClassGetField(Stack stack, Class<?> clazz, String fieldName) {
+      printNumIfTrue(clazz.getName().endsWith("Bar"), 21);
+    }
+
+    @Override
+    public void onClassGetFields(Stack stack, Class<?> clazz) {
+      printNumIfTrue(clazz.getName().endsWith("Bar"), 33);
+    }
+
+    @Override
+    public void onClassGetConstructor(Stack stack, Class<?> clazz, Class<?>... parameters) {
+      printNumIfTrue(clazz.getName().endsWith("Bar"), 34);
+    }
+
+    @Override
+    public void onClassGetConstructors(Stack stack, Class<?> clazz) {
+      printNumIfTrue(clazz.getName().endsWith("Bar"), 35);
     }
 
     @Override
@@ -114,21 +160,5 @@
     public void onClassGetSuperclass(Stack stack, Class<?> clazz) {
       printNumIfTrue(clazz.getName().endsWith("Foo"), 9);
     }
-
-    @Override
-    public void onClassGetMethod(
-        Stack stack, Class<?> clazz, String method, Class<?>... parameters) {
-      printNumIfTrue(clazz.getName().endsWith("Bar"), 20);
-    }
-
-    @Override
-    public void onClassGetField(Stack stack, Class<?> clazz, String fieldName) {
-      printNumIfTrue(clazz.getName().endsWith("Bar"), 21);
-    }
-
-    @Override
-    public void onClassGetMethods(Stack stack, Class<?> clazz) {
-      printNumIfTrue(clazz.getName().endsWith("Bar"), 22);
-    }
   }
 }
diff --git a/src/test/java/com/android/tools/r8/assistant/JavaLangClassTestClass.java b/src/test/java/com/android/tools/r8/assistant/JavaLangClassTestClass.java
index 2ced001..eaa3b87 100644
--- a/src/test/java/com/android/tools/r8/assistant/JavaLangClassTestClass.java
+++ b/src/test/java/com/android/tools/r8/assistant/JavaLangClassTestClass.java
@@ -4,6 +4,7 @@
 package com.android.tools.r8.assistant;
 
 import java.io.InputStream;
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
@@ -18,6 +19,9 @@
       clazz.getDeclaredField("a");
       clazz.getDeclaredField("b");
       Method[] declaredMethods = clazz.getDeclaredMethods();
+      Field[] declaredFields = clazz.getDeclaredFields();
+      clazz.getDeclaredConstructor();
+      Constructor<?>[] declaredConstructors = clazz.getDeclaredConstructors();
       String s = clazz.getName();
       s += clazz.getCanonicalName();
       s += clazz.getSimpleName();
@@ -37,10 +41,12 @@
 
       Class<?> barClass = Bar.class;
       Method[] methods = barClass.getMethods();
+      Field[] fields = barClass.getFields();
+      Constructor<?>[] constructors = barClass.getConstructors();
       Method bar = barClass.getMethod("bar");
       Field i = barClass.getField("i");
+      Constructor<?> constructor = barClass.getConstructor();
     } catch (ClassNotFoundException | NoSuchFieldException | NoSuchMethodException e) {
-      throw new RuntimeException(e);
     }
   }
 
diff --git a/src/test/java/com/android/tools/r8/assistant/R8AssistentReflectiveInstrumentationTest.java b/src/test/java/com/android/tools/r8/assistant/R8AssistentReflectiveInstrumentationTest.java
index e485f60..2332575 100644
--- a/src/test/java/com/android/tools/r8/assistant/R8AssistentReflectiveInstrumentationTest.java
+++ b/src/test/java/com/android/tools/r8/assistant/R8AssistentReflectiveInstrumentationTest.java
@@ -70,7 +70,7 @@
         .run(parameters.getRuntime(), TestClass.class)
         .assertSuccessWithOutputLines(
             "Reflectively created new instance of " + Bar.class.getName(),
-            "Reflectively got declared method callMe on " + Bar.class.getName(),
+            "Reflectively got declared method callMe() on " + Bar.class.getName(),
             "Reflectively got name on " + Bar.class.getName() + "(NAME)",
             "Reflectively called Class.forName on " + Bar.class.getName());
   }
diff --git a/src/test/java/com/android/tools/r8/assistant/ReflectiveCallExtractorTest.java b/src/test/java/com/android/tools/r8/assistant/ReflectiveCallExtractorTest.java
index e7f88f0..82ab320 100644
--- a/src/test/java/com/android/tools/r8/assistant/ReflectiveCallExtractorTest.java
+++ b/src/test/java/com/android/tools/r8/assistant/ReflectiveCallExtractorTest.java
@@ -40,12 +40,12 @@
 
   @Test
   public void testGson() throws Exception {
-    test(ToolHelper.GSON, 16, 12);
+    test(ToolHelper.GSON, 18, 10);
   }
 
   @Test
   public void testGuava() throws Exception {
-    test(ToolHelper.GUAVA_JRE, 22, 16);
+    test(ToolHelper.GUAVA_JRE, 25, 13);
   }
 
   @Test
@@ -64,7 +64,7 @@
             "dump_app.zip");
     Path programArchive =
         CompilerDump.fromArchive(zip, temp.newFolder().toPath()).getProgramArchive();
-    test(programArchive, 28, 21);
+    test(programArchive, 32, 17);
   }
 
   private void test(Path jar, int success, int failure) throws Exception {