Revert "[KeepAnno] Enable more tests for native interpretation"
Revert submission 89581
Reason for revert: Broke build, threading module when missing.
Reverted changes: /q/submissionid:89581
Change-Id: I77951d6bfdffd6810c71e078efe861da3f84bc69
diff --git a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java
index 0d7e1b2..ccac25a 100644
--- a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java
+++ b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java
@@ -239,32 +239,22 @@
return;
}
KeepClassItemPattern classPattern = schema.classes.get(classIndex);
- if (classPattern.getClassNamePattern().isExact()) {
- DexType type =
- appInfo
- .dexItemFactory()
- .createType(classPattern.getClassNamePattern().getExactDescriptor());
- DexProgramClass clazz = DexProgramClass.asProgramClassOrNull(appInfo.definitionFor(type));
- if (clazz == null) {
- // No valid match, so the rule is discarded. This should likely be a diagnostics info.
- return;
- }
- if (!predicates.matchesClass(clazz, classPattern)) {
- // Invalid match for this class.
- return;
- }
- continueWithClass(classIndex, clazz);
- } else {
- // TODO(b/323816623): This repeated iteration on all classes must be avoided.
- for (DexProgramClass clazz : appInfo.classes()) {
- if (predicates.matchesClass(clazz, classPattern)) {
- continueWithClass(classIndex, clazz);
- }
- }
+ if (!classPattern.getClassNamePattern().isExact()) {
+ throw new Unimplemented();
}
- }
-
- private void continueWithClass(int classIndex, DexProgramClass clazz) {
+ DexType type =
+ appInfo
+ .dexItemFactory()
+ .createType(classPattern.getClassNamePattern().getExactDescriptor());
+ DexProgramClass clazz = DexProgramClass.asProgramClassOrNull(appInfo.definitionFor(type));
+ if (clazz == null) {
+ // No valid match, so the rule is discarded. This should likely be a diagnostics info.
+ return;
+ }
+ if (!predicates.matchesClass(clazz, classPattern)) {
+ // Invalid match for this class.
+ return;
+ }
assignment.setClass(classIndex, clazz);
IntList classMemberIndexList = schema.classMembers.get(classIndex);
findMatchingMember(0, classMemberIndexList, clazz, classIndex + 1);
@@ -280,55 +270,48 @@
findMatchingClass(nextClassIndex);
return;
}
+ int nextMemberInHolderIndex = memberInHolderIndex + 1;
int memberIndex = memberIndexTranslation.getInt(memberInHolderIndex);
KeepMemberItemPattern memberItemPattern = schema.members.get(memberIndex);
- Consumer<ProgramDefinition> continueWithMember =
- m ->
- continueWithMember(
- m, memberIndex, memberInHolderIndex + 1, memberIndexTranslation, nextClassIndex);
memberItemPattern
.getMemberPattern()
.match(
- generalMemberPattern -> {
- if (!holder.hasMethodsOrFields() && generalMemberPattern.isAllMembers()) {
+ generalMember -> {
+ if (!holder.hasMethodsOrFields()) {
// The empty class can only match the "all member" pattern but with no assignment.
- continueWithMember.accept(holder);
- } else {
- holder.forEachProgramMember(
- m -> {
- if (predicates.matchesGeneralMember(
- m.getDefinition(), generalMemberPattern)) {
- continueWithMember.accept(m);
- }
- });
+ if (generalMember.isAllMembers()) {
+ assignment.setEmptyMemberMatch(memberIndex);
+ findMatchingMember(
+ nextMemberInHolderIndex, memberIndexTranslation, holder, nextClassIndex);
+ }
+ return;
}
+ if (!generalMember.isAllMembers()) {
+ throw new Unimplemented();
+ }
+ holder.forEachProgramMember(
+ f -> {
+ assignment.setMember(memberIndex, f);
+ findMatchingMember(
+ nextMemberInHolderIndex, memberIndexTranslation, holder, nextClassIndex);
+ });
},
- fieldPattern ->
- holder.forEachProgramFieldMatching(
- f -> predicates.matchesField(f, fieldPattern), continueWithMember),
- methodPattern ->
- holder.forEachProgramMethodMatching(
- m -> predicates.matchesMethod(m, methodPattern), continueWithMember));
- }
-
- private void continueWithMember(
- ProgramDefinition definition,
- int memberIndex,
- int nextMemberInHolderIndex,
- IntList memberIndexTranslation,
- int nextClassIndex) {
- if (definition.isProgramMember()) {
- assignment.setMember(memberIndex, definition.asProgramMember());
- } else {
- assert definition.isProgramClass();
- assert !definition.asProgramClass().hasMethodsOrFields();
- assignment.setEmptyMemberMatch(memberIndex);
- }
- findMatchingMember(
- nextMemberInHolderIndex,
- memberIndexTranslation,
- definition.getContextClass(),
- nextClassIndex);
+ fieldMember -> {
+ throw new Unimplemented();
+ },
+ methodMember -> {
+ holder.forEachProgramMethod(
+ m -> {
+ if (predicates.matchesMethod(methodMember, m)) {
+ assignment.setMember(memberIndex, m);
+ findMatchingMember(
+ nextMemberInHolderIndex,
+ memberIndexTranslation,
+ holder,
+ nextClassIndex);
+ }
+ });
+ });
}
}
@@ -353,6 +336,24 @@
this.edge = edge;
edge.getPreconditions().forEach(this::addPrecondition);
edge.getConsequences().forEachTarget(this::addConsequence);
+ ListUtils.forEachWithIndex(
+ members,
+ (member, memberIndex) -> {
+ member
+ .getClassReference()
+ .matchClassItemReference(
+ bindingReference -> {
+ int classIndex = symbolToKey.getInt(bindingReference);
+ classMembers.get(classIndex).add(memberIndex);
+ },
+ classItemPattern -> {
+ // The member declares its own inline class so link it directly.
+ IntArrayList memberList = new IntArrayList();
+ memberList.add(memberIndex);
+ classes.add(classItemPattern);
+ classMembers.add(memberList);
+ });
+ });
}
public static boolean isClassKeyReference(int keyRef) {
@@ -392,17 +393,14 @@
private int defineItemPattern(KeepItemPattern item) {
if (item.isClassItemPattern()) {
- int classIndex = classes.size();
+ int key = classes.size();
classes.add(item.asClassItemPattern());
classMembers.add(new IntArrayList());
- return encodeClassKey(classIndex);
- } else {
- int classIndex = defineItemReference(item.asMemberItemPattern().getClassReference());
- int memberIndex = members.size();
- members.add(item.asMemberItemPattern());
- classMembers.get(classIndex).add(memberIndex);
- return encodeMemberKey(memberIndex);
+ return encodeClassKey(key);
}
+ int key = members.size();
+ members.add(item.asMemberItemPattern());
+ return encodeMemberKey(key);
}
public void addPrecondition(KeepCondition condition) {
diff --git a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java
index 364a17f..45e8385 100644
--- a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java
+++ b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java
@@ -5,38 +5,25 @@
package com.android.tools.r8.shaking.rules;
import com.android.tools.r8.errors.Unimplemented;
-import com.android.tools.r8.graph.AccessFlags;
-import com.android.tools.r8.graph.DexAnnotation;
import com.android.tools.r8.graph.DexAnnotationSet;
-import com.android.tools.r8.graph.DexEncodedField;
-import com.android.tools.r8.graph.DexEncodedMember;
-import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.DexTypeList;
-import com.android.tools.r8.graph.FieldAccessFlags;
import com.android.tools.r8.graph.MethodAccessFlags;
-import com.android.tools.r8.keepanno.ast.AccessVisibility;
+import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.keepanno.ast.KeepArrayTypePattern;
import com.android.tools.r8.keepanno.ast.KeepClassItemPattern;
-import com.android.tools.r8.keepanno.ast.KeepFieldAccessPattern;
-import com.android.tools.r8.keepanno.ast.KeepFieldPattern;
import com.android.tools.r8.keepanno.ast.KeepInstanceOfPattern;
-import com.android.tools.r8.keepanno.ast.KeepMemberAccessPattern;
-import com.android.tools.r8.keepanno.ast.KeepMemberPattern;
import com.android.tools.r8.keepanno.ast.KeepMethodAccessPattern;
import com.android.tools.r8.keepanno.ast.KeepMethodParametersPattern;
import com.android.tools.r8.keepanno.ast.KeepMethodPattern;
import com.android.tools.r8.keepanno.ast.KeepMethodReturnTypePattern;
-import com.android.tools.r8.keepanno.ast.KeepPackagePattern;
import com.android.tools.r8.keepanno.ast.KeepPrimitiveTypePattern;
import com.android.tools.r8.keepanno.ast.KeepQualifiedClassNamePattern;
import com.android.tools.r8.keepanno.ast.KeepStringPattern;
import com.android.tools.r8.keepanno.ast.KeepTypePattern;
-import com.android.tools.r8.keepanno.ast.KeepUnqualfiedClassNamePattern;
-import com.android.tools.r8.keepanno.ast.ModifierPattern;
import com.android.tools.r8.keepanno.ast.OptionalPattern;
import java.util.List;
@@ -61,25 +48,7 @@
if (pattern.isExact()) {
return type.toDescriptorString().equals(pattern.getExactDescriptor());
}
- return matchesPackage(type.getPackageName(), pattern.getPackagePattern())
- && matchesSimpleName(type.getSimpleName(), pattern.getNamePattern());
- }
-
- private boolean matchesPackage(String packageName, KeepPackagePattern pattern) {
- if (pattern.isAny()) {
- return true;
- }
- if (pattern.isTop() && packageName.equals("")) {
- return true;
- }
- return packageName.equals(pattern.getExactPackageAsString());
- }
-
- public boolean matchesSimpleName(String simpleName, KeepUnqualfiedClassNamePattern pattern) {
- if (pattern.isAny()) {
- return true;
- }
- return pattern.asExact().getExactNameAsString().equals(simpleName);
+ throw new Unimplemented();
}
private boolean matchesInstanceOfPattern(
@@ -90,109 +59,30 @@
throw new Unimplemented();
}
- public boolean matchesGeneralMember(DexEncodedMember<?, ?> member, KeepMemberPattern pattern) {
- assert pattern.isGeneralMember();
- if (pattern.isAllMembers()) {
+ public boolean matchesMethod(KeepMethodPattern methodPattern, ProgramMethod method) {
+ if (methodPattern.isAnyMethod()) {
return true;
}
- return matchesAnnotatedBy(member.annotations(), pattern.getAnnotatedByPattern())
- && matchesGeneralMemberAccess(member.getAccessFlags(), pattern.getAccessPattern());
+ return matchesName(method.getName(), methodPattern.getNamePattern().asStringPattern())
+ && matchesReturnType(method.getReturnType(), methodPattern.getReturnTypePattern())
+ && matchesParameters(method.getParameters(), methodPattern.getParametersPattern())
+ && matchesAnnotatedBy(method.getAnnotations(), methodPattern.getAnnotatedByPattern())
+ && matchesAccess(method.getAccessFlags(), methodPattern.getAccessPattern());
}
- public boolean matchesMethod(DexEncodedMethod method, KeepMethodPattern pattern) {
- if (pattern.isAnyMethod()) {
- return true;
- }
- return matchesName(method.getName(), pattern.getNamePattern().asStringPattern())
- && matchesReturnType(method.getReturnType(), pattern.getReturnTypePattern())
- && matchesParameters(method.getParameters(), pattern.getParametersPattern())
- && matchesAnnotatedBy(method.annotations(), pattern.getAnnotatedByPattern())
- && matchesMethodAccess(method.getAccessFlags(), pattern.getAccessPattern());
- }
-
- public boolean matchesField(DexEncodedField field, KeepFieldPattern pattern) {
- if (pattern.isAnyField()) {
- return true;
- }
- return matchesName(field.getName(), pattern.getNamePattern().asStringPattern())
- && matchesType(field.getType(), pattern.getTypePattern().asType())
- && matchesAnnotatedBy(field.annotations(), pattern.getAnnotatedByPattern())
- && matchesFieldAccess(field.getAccessFlags(), pattern.getAccessPattern());
- }
-
- public boolean matchesGeneralMemberAccess(
- AccessFlags<?> access, KeepMemberAccessPattern pattern) {
+ public boolean matchesAccess(MethodAccessFlags access, KeepMethodAccessPattern pattern) {
if (pattern.isAny()) {
return true;
}
- if (!pattern.isAnyVisibility() && !pattern.isVisibilityAllowed(getAccessVisibility(access))) {
- return false;
- }
- return matchesModifier(access.isStatic(), pattern.getStaticPattern())
- && matchesModifier(access.isFinal(), pattern.getFinalPattern())
- && matchesModifier(access.isSynthetic(), pattern.getSyntheticPattern());
- }
-
- public boolean matchesMethodAccess(MethodAccessFlags access, KeepMethodAccessPattern pattern) {
- if (pattern.isAny()) {
- return true;
- }
- return matchesGeneralMemberAccess(access, pattern)
- && matchesModifier(access.isSynchronized(), pattern.getSynchronizedPattern())
- && matchesModifier(access.isBridge(), pattern.getBridgePattern())
- && matchesModifier(access.isNative(), pattern.getNativePattern())
- && matchesModifier(access.isAbstract(), pattern.getAbstractPattern())
- && matchesModifier(access.isStrict(), pattern.getStrictFpPattern());
- }
-
- public boolean matchesFieldAccess(FieldAccessFlags access, KeepFieldAccessPattern pattern) {
- if (pattern.isAny()) {
- return true;
- }
- return matchesGeneralMemberAccess(access, pattern)
- && matchesModifier(access.isVolatile(), pattern.getVolatilePattern())
- && matchesModifier(access.isTransient(), pattern.getTransientPattern());
- }
-
- private boolean matchesModifier(boolean value, ModifierPattern pattern) {
- return pattern.isAny() || value == pattern.isOnlyPositive();
- }
-
- private AccessVisibility getAccessVisibility(AccessFlags<?> accessFlags) {
- if (accessFlags.isPublic()) {
- return AccessVisibility.PUBLIC;
- }
- if (accessFlags.isProtected()) {
- return AccessVisibility.PROTECTED;
- }
- if (accessFlags.isPackagePrivate()) {
- return AccessVisibility.PACKAGE_PRIVATE;
- }
- assert accessFlags.isPrivate();
- return AccessVisibility.PRIVATE;
+ throw new Unimplemented();
}
public boolean matchesAnnotatedBy(
DexAnnotationSet annotations, OptionalPattern<KeepQualifiedClassNamePattern> pattern) {
if (pattern.isAbsent()) {
- // No pattern for annotations matches regardless of annotation content.
return true;
}
- if (annotations.isEmpty()) {
- // Fast-path if pattern is present but no annotations.
- return false;
- }
- KeepQualifiedClassNamePattern classNamePattern = pattern.get();
- if (classNamePattern.isAny()) {
- // Fast-path the "any" case.
- return true;
- }
- for (DexAnnotation annotation : annotations.getAnnotations()) {
- if (matchesClassName(annotation.getAnnotationType(), classNamePattern)) {
- return true;
- }
- }
- return false;
+ throw new Unimplemented();
}
public boolean matchesParameters(DexTypeList parameters, KeepMethodParametersPattern pattern) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java
index 2dd3af2..31de01d 100644
--- a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternAnyRetentionTest.java
@@ -44,7 +44,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java
index af205e6..df1bee8 100644
--- a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternClassRetentionTest.java
@@ -45,7 +45,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java
index af1e3b0..feafc7f 100644
--- a/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/AnnotationPatternMultipleTest.java
@@ -46,7 +46,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java
index 86bf2a5..2f1f572 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ArrayPatternsTest.java
@@ -41,7 +41,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java
index 5c7237a..7f3840f 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByAnyAnnoPatternTest.java
@@ -44,7 +44,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java
index ea21a44..6d0f966 100644
--- a/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/ClassAnnotatedByPatternsTest.java
@@ -44,7 +44,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java
index 61fb54c..669d945 100644
--- a/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/FieldPatternsTest.java
@@ -38,7 +38,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java
index 6e41cc0..a9dec7d 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAccessVisibilityFlagsTest.java
@@ -82,7 +82,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.allowAccessModification()
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
index 5e34061..1105bd3 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepAnnoTestBuilder.java
@@ -113,8 +113,8 @@
return applyIfPG(b -> b.addDontWarn(clazz));
}
- public KeepAnnoTestBuilder allowUnusedProguardConfigurationRules() {
- return this;
+ public final KeepAnnoTestBuilder allowUnusedProguardConfigurationRules() {
+ return applyIfR8Current(R8TestBuilder::allowUnusedProguardConfigurationRules);
}
public final KeepAnnoTestBuilder allowAccessModification() {
@@ -170,7 +170,6 @@
private List<Consumer<R8TestCompileResult>> compileResultConsumers = new ArrayList<>();
private final boolean normalizeEdges;
private final boolean extractRules;
- private boolean enableNative = false;
private R8NativeBuilder(KeepAnnoParameters params, TemporaryFolder temp) {
super(params, temp);
@@ -190,25 +189,10 @@
}
@Override
- public KeepAnnoTestBuilder allowUnusedProguardConfigurationRules() {
- if (!enableNative) {
- builder.allowUnusedProguardConfigurationRules();
- }
- return this;
- }
-
- @Override
public KeepAnnoTestBuilder enableNativeInterpretation() {
if (extractRules) {
return this;
}
- enableNative = true;
- // TODO(b/323816623): The compiler assumes that this is known prior to tracing.
- // We should update the compiler to always read annotations and only remove them after
- // initial tracing regardless of -keepattributes.
- builder.addKeepRuntimeVisibleAnnotations();
- builder.addKeepRuntimeInvisibleAnnotations();
-
// This enables native interpretation of all keep annotations.
builder.addOptionsModification(
o -> {
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java
index 18bc3d5..464ee91 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepBindingTest.java
@@ -37,7 +37,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepClassRules(A.class, B.class)
.addKeepMainRule(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java
index 8e73b21..4abe376 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepClassApiTest.java
@@ -59,7 +59,6 @@
assertTrue(parameters.isShrinker());
Box<Path> lib = new Box<>();
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getLibraryClasses())
.setExcludedOuterClass(getClass())
.applyIfShrinker(b -> lib.set(b.compile().inspect(this::checkLibraryOutput).writeToZip()));
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java
index f9cd926..9ac84d1 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepFieldValueApiTest.java
@@ -58,7 +58,6 @@
assertTrue(parameters.isShrinker());
Box<Path> lib = new Box<>();
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getLibraryClasses())
.setExcludedOuterClass(getClass())
.applyIfShrinker(b -> lib.set(b.compile().inspect(this::checkLibraryOutput).writeToZip()));
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java
index 76e7a94..bf82204 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarAnyClassTest.java
@@ -35,7 +35,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java
index 6e287d6..0a2e16b 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepFooIfBarSameClassTest.java
@@ -39,7 +39,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java
index 8d8b397..fe8eacd 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMembersAccessFlagsTest.java
@@ -42,7 +42,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java
index 3ad549d..c6d3b7d 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMembersApiTest.java
@@ -58,7 +58,6 @@
assertTrue(parameters.isShrinker());
Box<Path> lib = new Box<>();
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getLibraryClasses())
.setExcludedOuterClass(getClass())
.applyIfShrinker(b -> lib.set(b.compile().inspect(this::checkLibraryOutput).writeToZip()));
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java
index 9dec3d5..0de2eaf 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsAccessFlagsTest.java
@@ -41,7 +41,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java
index e1db615..cac4ddb 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepMethodsEmptyAccessFlagsTest.java
@@ -40,7 +40,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(TestClass.class)
.setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java
index dca36c5..1fbe385 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepStaticBindingTest.java
@@ -36,7 +36,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java
index 9190d30..0bc2417 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepUsedByReflectionAnnotationTest.java
@@ -41,7 +41,6 @@
public void test() throws Exception {
Class<?> mainClass = TestClass.class;
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(mainClass)
.setExcludedOuterClass(getClass())
@@ -54,7 +53,6 @@
public void testNoRef() throws Exception {
Class<?> mainClass = TestClassNoRef.class;
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.addKeepMainRule(mainClass)
.allowUnusedProguardConfigurationRules()
diff --git a/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java
index 35c1494..52850da 100644
--- a/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/MembersAnnotatedByPatternsTest.java
@@ -47,7 +47,6 @@
@Test
public void test() throws Exception {
testForKeepAnno(parameters)
- .enableNativeInterpretation()
.addProgramClasses(getInputClasses())
.setExcludedOuterClass(getClass())
.run(TestClass.class)