Unify handling of fields and methods in class constructors
Change-Id: I457905e4dfd7e08e226d2f4d01b3a49e6afd353a
diff --git a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
index 9871104..c51a753 100644
--- a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
+++ b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
@@ -20,7 +20,6 @@
import com.android.tools.r8.graph.ClassAccessFlags;
import com.android.tools.r8.graph.DexAnnotationSet;
import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexLibraryClass;
import com.android.tools.r8.graph.DexProgramClass;
@@ -28,6 +27,7 @@
import com.android.tools.r8.graph.DexTypeList;
import com.android.tools.r8.graph.DirectMappedDexApplication;
import com.android.tools.r8.graph.EnclosingMethodAttribute;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
import com.android.tools.r8.graph.NestHostClassAttribute;
@@ -233,8 +233,7 @@
Collections.emptyList(),
ClassSignature.noSignature(),
DexAnnotationSet.empty(),
- DexEncodedField.EMPTY_ARRAY,
- DexEncodedField.EMPTY_ARRAY,
+ FieldCollectionFactory.empty(),
MethodCollectionFactory.empty(),
factory.getSkipNameValidationForTesting(),
DexProgramClass::invalidChecksumRequest,
diff --git a/src/main/java/com/android/tools/r8/graph/ClassKind.java b/src/main/java/com/android/tools/r8/graph/ClassKind.java
index 9d6df7a..0e69cc3 100644
--- a/src/main/java/com/android/tools/r8/graph/ClassKind.java
+++ b/src/main/java/com/android/tools/r8/graph/ClassKind.java
@@ -6,6 +6,7 @@
import com.android.tools.r8.ProgramResource.Kind;
import com.android.tools.r8.graph.DexProgramClass.ChecksumSupplier;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
import com.android.tools.r8.origin.Origin;
@@ -57,8 +58,7 @@
innerClasses,
classSignature,
classAnnotations,
- staticFields,
- instanceFields,
+ FieldCollectionFactory.fromFields(instanceFields, staticFields),
MethodCollectionFactory.fromMethods(directMethods, virtualMethods),
skipNameValidationForTesting,
checksumSupplier,
@@ -106,8 +106,7 @@
innerClasses,
classSignature,
annotations,
- staticFields,
- instanceFields,
+ FieldCollectionFactory.fromFields(instanceFields, staticFields),
MethodCollectionFactory.fromMethods(directMethods, virtualMethods),
skipNameValidationForTesting),
DexClass::isClasspathClass);
@@ -152,8 +151,7 @@
innerClasses,
classSignature,
annotations,
- staticFields,
- instanceFields,
+ FieldCollectionFactory.fromFields(instanceFields, staticFields),
MethodCollectionFactory.fromMethods(directMethods, virtualMethods),
skipNameValidationForTesting),
DexClass::isLibraryClass);
diff --git a/src/main/java/com/android/tools/r8/graph/DexClass.java b/src/main/java/com/android/tools/r8/graph/DexClass.java
index 0d13e20..14c4684 100644
--- a/src/main/java/com/android/tools/r8/graph/DexClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexClass.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.dex.MixedSectionCollection;
import com.android.tools.r8.errors.CompilationError;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.GenericSignature.ClassTypeSignature;
import com.android.tools.r8.graph.GenericSignature.FieldTypeSignature;
@@ -87,15 +88,13 @@
/** Generic signature information if the attribute is present in the input */
protected ClassSignature classSignature;
- @SuppressWarnings("ReferenceEquality")
public DexClass(
DexString sourceFile,
DexTypeList interfaces,
ClassAccessFlags accessFlags,
DexType superType,
DexType type,
- DexEncodedField[] staticFields,
- DexEncodedField[] instanceFields,
+ FieldCollectionFactory fieldCollectionFactory,
MethodCollectionFactory methodCollectionFactory,
NestHostClassAttribute nestHost,
List<NestMemberClassAttribute> nestMembers,
@@ -115,7 +114,7 @@
this.accessFlags = accessFlags;
this.superType = superType;
this.type = type;
- this.fieldCollection = FieldCollection.create(this, staticFields, instanceFields);
+ this.fieldCollection = fieldCollectionFactory.create(this);
this.methodCollection = methodCollectionFactory.create(this);
this.nestHost = nestHost;
this.nestMembers = nestMembers;
@@ -128,19 +127,17 @@
assert classSignature != null;
this.classSignature = classSignature;
assert GenericSignatureUtils.verifyNoDuplicateGenericDefinitions(classSignature, annotations);
- if (type == superType) {
- throw new CompilationError("Class " + type.toString() + " cannot extend itself");
+ if (type.isIdenticalTo(superType)) {
+ throw new CompilationError("Class " + type + " cannot extend itself");
}
- for (DexType interfaceType : interfaces.values) {
- if (type == interfaceType) {
- throw new CompilationError("Interface " + type.toString() + " cannot implement itself");
+ for (DexType interfaceType : interfaces) {
+ if (type.isIdenticalTo(interfaceType)) {
+ throw new CompilationError("Interface " + type + " cannot implement itself");
}
}
if (!skipNameValidationForTesting && !type.descriptor.isValidClassDescriptor()) {
throw new CompilationError(
- "Class descriptor '"
- + type.descriptor.toString()
- + "' cannot be represented in dex format.");
+ "Class descriptor '" + type.descriptor + "' cannot be represented in dex format.");
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexClasspathClass.java b/src/main/java/com/android/tools/r8/graph/DexClasspathClass.java
index 9c11896..25248cb 100644
--- a/src/main/java/com/android/tools/r8/graph/DexClasspathClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexClasspathClass.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.ProgramResource.Kind;
import com.android.tools.r8.dex.MixedSectionCollection;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
import com.android.tools.r8.kotlin.KotlinClassLevelInfo;
@@ -41,8 +42,7 @@
List<InnerClassAttribute> innerClasses,
ClassSignature classSignature,
DexAnnotationSet annotations,
- DexEncodedField[] staticFields,
- DexEncodedField[] instanceFields,
+ FieldCollectionFactory fieldCollectionFactory,
MethodCollectionFactory methodCollectionFactory,
boolean skipNameValidationForTesting) {
super(
@@ -51,8 +51,7 @@
accessFlags,
superType,
type,
- staticFields,
- instanceFields,
+ fieldCollectionFactory,
methodCollectionFactory,
nestHost,
nestMembers,
diff --git a/src/main/java/com/android/tools/r8/graph/DexLibraryClass.java b/src/main/java/com/android/tools/r8/graph/DexLibraryClass.java
index 7dc2241..d537562 100644
--- a/src/main/java/com/android/tools/r8/graph/DexLibraryClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexLibraryClass.java
@@ -7,12 +7,12 @@
import com.android.tools.r8.ProgramResource.Kind;
import com.android.tools.r8.dex.MixedSectionCollection;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
import com.android.tools.r8.kotlin.KotlinClassLevelInfo;
import com.android.tools.r8.origin.Origin;
import com.google.common.collect.Streams;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -39,8 +39,7 @@
List<InnerClassAttribute> innerClasses,
ClassSignature classSignature,
DexAnnotationSet annotations,
- DexEncodedField[] staticFields,
- DexEncodedField[] instanceFields,
+ FieldCollectionFactory fieldCollectionFactory,
MethodCollectionFactory methodCollectionFactory,
boolean skipNameValidationForTesting) {
super(
@@ -49,8 +48,7 @@
accessFlags,
superType,
type,
- staticFields,
- instanceFields,
+ fieldCollectionFactory,
methodCollectionFactory,
nestHost,
nestMembers,
@@ -62,12 +60,11 @@
annotations,
origin,
skipNameValidationForTesting);
+ assert Streams.stream(fields()).allMatch(DexLibraryClass::verifyLibraryField);
assert Streams.stream(methods()).allMatch(DexLibraryClass::verifyLibraryMethod);
- assert Arrays.stream(staticFields).allMatch(DexLibraryClass::verifyLibraryField);
- assert Arrays.stream(instanceFields).allMatch(DexLibraryClass::verifyLibraryField);
// Set all static field values to unknown. We don't want to use the value from the library
// at compile time, as it can be different at runtime.
- for (DexEncodedField staticField : staticFields) {
+ for (DexEncodedField staticField : staticFields()) {
staticField.clearStaticValue();
}
assert kind == Kind.CF : "Invalid kind " + kind + " for library-path class " + type;
@@ -230,8 +227,7 @@
innerClasses,
classSignature,
annotations,
- staticFields,
- instanceFields,
+ FieldCollectionFactory.fromFields(instanceFields, staticFields),
MethodCollectionFactory.fromMethods(directMethods, virtualMethods),
skipNameValidationForTesting);
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexProgramClass.java b/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
index c9ca7e4..b5f8a5c 100644
--- a/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
+++ b/src/main/java/com/android/tools/r8/graph/DexProgramClass.java
@@ -12,6 +12,7 @@
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.dex.MixedSectionCollection;
import com.android.tools.r8.errors.CompilationError;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.GenericSignature.ClassTypeSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
@@ -76,8 +77,7 @@
List<InnerClassAttribute> innerClasses,
ClassSignature classSignature,
DexAnnotationSet classAnnotations,
- DexEncodedField[] staticFields,
- DexEncodedField[] instanceFields,
+ FieldCollectionFactory fieldCollectionFactory,
MethodCollectionFactory methodCollectionFactory,
boolean skipNameValidationForTesting,
ChecksumSupplier checksumSupplier,
@@ -89,8 +89,7 @@
accessFlags,
superType,
type,
- staticFields,
- instanceFields,
+ fieldCollectionFactory,
methodCollectionFactory,
nestHost,
nestMembers,
@@ -126,8 +125,7 @@
List<InnerClassAttribute> innerClasses,
ClassSignature classSignature,
DexAnnotationSet classAnnotations,
- DexEncodedField[] staticFields,
- DexEncodedField[] instanceFields,
+ FieldCollectionFactory fieldCollectionFactory,
MethodCollectionFactory methodCollectionFactory,
boolean skipNameValidationForTesting,
ChecksumSupplier checksumSupplier,
@@ -148,8 +146,7 @@
innerClasses,
classSignature,
classAnnotations,
- staticFields,
- instanceFields,
+ fieldCollectionFactory,
methodCollectionFactory,
skipNameValidationForTesting,
checksumSupplier,
@@ -174,8 +171,7 @@
Collections.emptyList(),
ClassSignature.noSignature(),
DexAnnotationSet.empty(),
- DexEncodedField.EMPTY_ARRAY,
- DexEncodedField.EMPTY_ARRAY,
+ FieldCollectionFactory.empty(),
MethodCollectionFactory.empty(),
false,
DexProgramClass::invalidChecksumRequest,
diff --git a/src/main/java/com/android/tools/r8/graph/FieldCollection.java b/src/main/java/com/android/tools/r8/graph/FieldCollection.java
index 2c4b920..b9ad6df 100644
--- a/src/main/java/com/android/tools/r8/graph/FieldCollection.java
+++ b/src/main/java/com/android/tools/r8/graph/FieldCollection.java
@@ -15,6 +15,25 @@
public class FieldCollection {
+ @FunctionalInterface
+ public interface FieldCollectionFactory {
+
+ FieldCollection create(DexClass holder);
+
+ static FieldCollectionFactory empty() {
+ return fromFields(DexEncodedField.EMPTY_ARRAY, DexEncodedField.EMPTY_ARRAY);
+ }
+
+ static FieldCollectionFactory fromFields(
+ DexEncodedField[] instanceFields, DexEncodedField[] staticFields) {
+ return holder -> FieldCollection.create(holder, staticFields, instanceFields);
+ }
+
+ static FieldCollectionFactory fromFieldCollection(FieldCollection collection) {
+ return holder -> new FieldCollection(holder, collection.backing);
+ }
+ }
+
// Threshold between using an array and a map for the backing store.
// The choice of 30 is just a copy from the method backing threshold.
private static final int ARRAY_BACKING_THRESHOLD = 30;
diff --git a/src/main/java/com/android/tools/r8/graph/fixup/TreeFixerBase.java b/src/main/java/com/android/tools/r8/graph/fixup/TreeFixerBase.java
index 9f40e9f..78a001b 100644
--- a/src/main/java/com/android/tools/r8/graph/fixup/TreeFixerBase.java
+++ b/src/main/java/com/android/tools/r8/graph/fixup/TreeFixerBase.java
@@ -17,6 +17,7 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.DexTypeList;
import com.android.tools.r8.graph.EnclosingMethodAttribute;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.InnerClassAttribute;
import com.android.tools.r8.graph.NestHostClassAttribute;
import com.android.tools.r8.graph.NestMemberClassAttribute;
@@ -132,8 +133,7 @@
fixupInnerClassAttributes(clazz.getInnerClasses()),
clazz.getClassSignature(),
clazz.annotations(),
- DexEncodedField.EMPTY_ARRAY,
- DexEncodedField.EMPTY_ARRAY,
+ FieldCollectionFactory.empty(),
newHolder -> clazz.getMethodCollection().fixup(newHolder, this::fixupMethod),
dexItemFactory.getSkipNameValidationForTesting(),
clazz.getChecksumSupplier(),
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/itf/EmulatedInterfaceApplicationRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/itf/EmulatedInterfaceApplicationRewriter.java
index 604299b..936089f 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/itf/EmulatedInterfaceApplicationRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/itf/EmulatedInterfaceApplicationRewriter.java
@@ -5,11 +5,11 @@
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexApplication;
-import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.DexTypeList;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
@@ -86,8 +86,7 @@
Collections.emptyList(),
emulatedInterface.getClassSignature(),
emulatedInterface.annotations(),
- DexEncodedField.EMPTY_ARRAY,
- DexEncodedField.EMPTY_ARRAY,
+ FieldCollectionFactory.empty(),
MethodCollectionFactory.fromMethods(newDirectMethods, newVirtualMethods),
false,
emulatedInterface.getChecksumSupplier(),
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java
index 2084f67..68a0775 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java
@@ -45,6 +45,7 @@
factory.createSynthesizedType("[Ljava/lang/Object;");
factory.createSynthesizedType("[Ljava/lang/String;");
}
+
public static CfCode RecordMethods_toString(DexItemFactory factory, DexMethod method) {
CfLabel label0 = new CfLabel();
CfLabel label1 = new CfLabel();
diff --git a/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerFactory.java b/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerFactory.java
index 3354e65..10ff74a 100644
--- a/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerFactory.java
+++ b/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerFactory.java
@@ -26,6 +26,7 @@
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexTypeList;
import com.android.tools.r8.graph.EnclosingMethodAttribute;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodAccessFlags;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
@@ -54,8 +55,7 @@
Collections.emptyList(),
ClassSignature.noSignature(),
DexAnnotationSet.empty(),
- createStaticFields(),
- createInstanceFields(),
+ FieldCollectionFactory.fromFields(createInstanceFields(), createStaticFields()),
MethodCollectionFactory.fromMethods(
createDirectMethods(dexItemFactory), createVirtualMethods(dexItemFactory)),
dexItemFactory.getSkipNameValidationForTesting(),
diff --git a/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java b/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java
index a70f457..27e1ed6 100644
--- a/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java
+++ b/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java
@@ -43,6 +43,7 @@
import com.android.tools.r8.graph.DexTypeList;
import com.android.tools.r8.graph.EnclosingMethodAttribute;
import com.android.tools.r8.graph.FieldAccessFlags;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodAccessFlags;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
@@ -76,8 +77,8 @@
Collections.emptyList(),
ClassSignature.noSignature(),
DexAnnotationSet.empty(),
- createStaticFields(dexItemFactory),
- createInstanceFields(dexItemFactory),
+ FieldCollectionFactory.fromFields(
+ createInstanceFields(dexItemFactory), createStaticFields(dexItemFactory)),
MethodCollectionFactory.fromMethods(
createDirectMethods(dexItemFactory), createVirtualMethods(dexItemFactory)),
dexItemFactory.getSkipNameValidationForTesting(),
diff --git a/src/test/java/com/android/tools/r8/cfmethodgeneration/CfClassGenerator.java b/src/test/java/com/android/tools/r8/cfmethodgeneration/CfClassGenerator.java
index 45c756e..3b84f5e 100644
--- a/src/test/java/com/android/tools/r8/cfmethodgeneration/CfClassGenerator.java
+++ b/src/test/java/com/android/tools/r8/cfmethodgeneration/CfClassGenerator.java
@@ -131,17 +131,19 @@
builder.startLine().append(imports.getDexAnnotationSet()).appendLine(".empty(),");
- if (clazz.hasStaticFields()) {
- builder.startLine().appendLine("createStaticFields(dexItemFactory),");
- } else {
- builder.startLine().appendLine("createStaticFields(),");
- }
-
+ builder.startLine().append(imports.getFieldCollectionFactory()).appendLine(".fromFields(");
if (clazz.hasInstanceFields()) {
- builder.startLine().appendLine("createInstanceFields(dexItemFactory),");
+ builder.append("createInstanceFields(dexItemFactory)");
} else {
- builder.startLine().appendLine("createInstanceFields(),");
+ builder.append("createInstanceFields()");
}
+ builder.append(", ");
+ if (clazz.hasStaticFields()) {
+ builder.append("createStaticFields(dexItemFactory)");
+ } else {
+ builder.append("createStaticFields()");
+ }
+ builder.append("),");
builder
.startLine()
@@ -152,7 +154,9 @@
builder.startLine().appendLine("dexItemFactory.getSkipNameValidationForTesting(),");
- builder.startLine().append(imports.getDexProgramClass()).append("::invalidChecksumRequest");
+ builder.startLine().append(imports.getDexProgramClass()).append("::invalidChecksumRequest,");
+
+ builder.startLine().append(imports.getReachabilitySensitiveValue()).append(".DISABLED");
builder.appendClosingMultiLineParenthesis().appendLine(';');
builder.appendClosingBrace();
diff --git a/src/test/java/com/android/tools/r8/cfmethodgeneration/CfCodeGeneratorImportCollection.java b/src/test/java/com/android/tools/r8/cfmethodgeneration/CfCodeGeneratorImportCollection.java
index 12be5f6..c1015a8 100644
--- a/src/test/java/com/android/tools/r8/cfmethodgeneration/CfCodeGeneratorImportCollection.java
+++ b/src/test/java/com/android/tools/r8/cfmethodgeneration/CfCodeGeneratorImportCollection.java
@@ -67,6 +67,10 @@
return getR8ClassName("graph", "FieldAccessFlags");
}
+ String getFieldCollectionFactory() {
+ return getR8ClassName("graph.FieldCollection", "FieldCollectionFactory");
+ }
+
String getFieldTypeSignature() {
return getR8ClassName("graph.GenericSignature", "FieldTypeSignature");
}
@@ -96,6 +100,10 @@
return getR8ClassName("ProgramResource", "Kind");
}
+ String getReachabilitySensitiveValue() {
+ return getR8ClassName("utils", "ReachabilitySensitiveValue");
+ }
+
private String getR8ClassName(String context, String name) {
String canonicalName =
"com.android.tools.r8." + (context != null ? (context + ".") : "") + name;
diff --git a/src/test/java/com/android/tools/r8/cfmethodgeneration/GenerateTypeSwitchMethods.java b/src/test/java/com/android/tools/r8/cfmethodgeneration/GenerateTypeSwitchMethods.java
index 5c5ec95..82e6888 100644
--- a/src/test/java/com/android/tools/r8/cfmethodgeneration/GenerateTypeSwitchMethods.java
+++ b/src/test/java/com/android/tools/r8/cfmethodgeneration/GenerateTypeSwitchMethods.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper.TestDataSourceSet;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.utils.FileUtils;
@@ -32,7 +31,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
public GenerateTypeSwitchMethods(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java
index 6c83010..631d3ee 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/generation/GenerateDesugaredLibraryBridge.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper.TestDataSourceSet;
import com.android.tools.r8.cfmethodgeneration.InstructionTypeMapper;
import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
@@ -43,7 +42,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
public GenerateDesugaredLibraryBridge(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java b/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java
index 9e491b3..1f01b2c 100644
--- a/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java
+++ b/src/test/java/com/android/tools/r8/desugar/records/GenerateRecordMethods.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper.TestDataSourceSet;
import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
import com.android.tools.r8.graph.DexType;
@@ -32,7 +31,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
public GenerateRecordMethods(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java b/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java
index 11a7512..cfce913 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/GenerateEnumUnboxingMethods.java
@@ -7,7 +7,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper.TestDataSourceSet;
import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
import com.android.tools.r8.graph.DexType;
@@ -34,7 +33,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
public GenerateEnumUnboxingMethods(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/ir/conversion/CallGraphTestBase.java b/src/test/java/com/android/tools/r8/ir/conversion/CallGraphTestBase.java
index 6499f3d..c6b50ca 100644
--- a/src/test/java/com/android/tools/r8/ir/conversion/CallGraphTestBase.java
+++ b/src/test/java/com/android/tools/r8/ir/conversion/CallGraphTestBase.java
@@ -6,12 +6,12 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.graph.ClassAccessFlags;
import com.android.tools.r8.graph.DexAnnotationSet;
-import com.android.tools.r8.graph.DexEncodedField;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexTypeList;
+import com.android.tools.r8.graph.FieldCollection.FieldCollectionFactory;
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodAccessFlags;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
@@ -41,8 +41,7 @@
Collections.emptyList(),
ClassSignature.noSignature(),
DexAnnotationSet.empty(),
- DexEncodedField.EMPTY_ARRAY,
- DexEncodedField.EMPTY_ARRAY,
+ FieldCollectionFactory.empty(),
MethodCollectionFactory.empty(),
false,
DexProgramClass::invalidChecksumRequest,
diff --git a/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java b/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java
index 5d9103c..96dd2e3 100644
--- a/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java
+++ b/src/test/java/com/android/tools/r8/ir/desugar/backports/GenerateBackportMethods.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper.TestDataSourceSet;
import com.android.tools.r8.cf.code.CfInstruction;
import com.android.tools.r8.cf.code.CfInvoke;
@@ -70,7 +69,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
public GenerateBackportMethods(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java b/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java
index 08281ff..718d3b3 100644
--- a/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java
+++ b/src/test/java/com/android/tools/r8/ir/desugar/varhandle/GenerateVarHandleMethods.java
@@ -8,7 +8,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper.TestDataSourceSet;
import com.android.tools.r8.cfmethodgeneration.InstructionTypeMapper;
import com.android.tools.r8.cfmethodgeneration.MethodGenerationBase;
@@ -45,7 +44,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
public GenerateVarHandleMethods(TestParameters parameters) {
diff --git a/src/test/java/com/android/tools/r8/startup/GenerateInstrumentationServerClassesTest.java b/src/test/java/com/android/tools/r8/startup/GenerateInstrumentationServerClassesTest.java
index 5e7c7c5..8238492 100644
--- a/src/test/java/com/android/tools/r8/startup/GenerateInstrumentationServerClassesTest.java
+++ b/src/test/java/com/android/tools/r8/startup/GenerateInstrumentationServerClassesTest.java
@@ -9,7 +9,6 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.cfmethodgeneration.CfClassGenerator;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.utils.FileUtils;
@@ -31,7 +30,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withCfRuntime(CfVm.JDK9).build();
+ return getTestParameters().withNoneRuntime().build();
}
@Test