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 {