Reapply "Fix deprecared code in kotlinClassifierInfo"
This reverts commit 76bdfac718a0df7fd4abd95466fbe4d8790547f0.
Change-Id: Ic6ad7a8e29f03ab244e37682258ccff286124146
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java
index ef21b62..83f3612 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassifierInfo.java
@@ -18,7 +18,7 @@
import kotlin.metadata.KmClassifier;
import kotlin.metadata.KmClassifier.TypeAlias;
import kotlin.metadata.KmClassifier.TypeParameter;
-import kotlin.metadata.KmTypeVisitor;
+import kotlin.metadata.KmType;
public abstract class KotlinClassifierInfo implements EnqueuerMetadataTraceable {
@@ -49,7 +49,7 @@
}
}
- abstract boolean rewrite(KmTypeVisitor visitor, AppView<?> appView);
+ abstract boolean rewrite(KmType kmType, AppView<?> appView);
public DexType rewriteType(GraphLens graphLens, GraphLens codeLens) {
return null;
@@ -66,11 +66,12 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
+ boolean rewrite(KmType kmType, AppView<?> appView) {
return type.toRenamedDescriptorOrDefault(
descriptor ->
- visitor.visitClass(
- getKotlinLocalOrAnonymousNameFromDescriptor(descriptor, isLocalOrAnonymous)),
+ kmType.setClassifier(
+ new KmClassifier.Class(
+ getKotlinLocalOrAnonymousNameFromDescriptor(descriptor, isLocalOrAnonymous))),
appView,
ClassClassifiers.anyDescriptor);
}
@@ -95,8 +96,8 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
- visitor.visitTypeParameter(typeId);
+ boolean rewrite(KmType kmType, AppView<?> appView) {
+ kmType.setClassifier(new KmClassifier.TypeParameter(typeId));
return false;
}
@@ -115,8 +116,8 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
- visitor.visitTypeAlias(typeAlias);
+ boolean rewrite(KmType kmType, AppView<?> appView) {
+ kmType.setClassifier(new KmClassifier.TypeAlias(typeAlias));
return false;
}
@@ -134,8 +135,8 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
- visitor.visitClass(classifier);
+ boolean rewrite(KmType kmType, AppView<?> appView) {
+ kmType.setClassifier(new KmClassifier.Class(classifier));
return false;
}
@@ -153,8 +154,8 @@
}
@Override
- boolean rewrite(KmTypeVisitor visitor, AppView<?> appView) {
- visitor.visitTypeAlias(classifier);
+ boolean rewrite(KmType kmType, AppView<?> appView) {
+ kmType.setClassifier(new KmClassifier.TypeAlias(classifier));
return false;
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinCompanionInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinCompanionInfo.java
index c6981c9..7cbe845 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinCompanionInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinCompanionInfo.java
@@ -8,7 +8,7 @@
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.naming.NamingLens;
-import kotlin.metadata.KmClassVisitor;
+import kotlin.metadata.KmClass;
// Structure around a kotlin companion object that can be assigned to a field.
public class KotlinCompanionInfo implements KotlinFieldLevelInfo {
@@ -29,10 +29,10 @@
return this;
}
- boolean rewrite(KmClassVisitor visitor, DexField field, NamingLens lens) {
+ boolean rewrite(KmClass clazz, DexField field, NamingLens lens) {
DexString dexString = lens.lookupName(field);
String finalName = dexString.toString();
- visitor.visitCompanionObject(finalName);
+ clazz.setCompanionObject(finalName);
return !finalName.equals(companionObjectFieldName);
}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinEnumEntryInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinEnumEntryInfo.java
index ff1336d..4c3197d 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinEnumEntryInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinEnumEntryInfo.java
@@ -8,7 +8,7 @@
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.naming.NamingLens;
-import kotlin.metadata.KmClassVisitor;
+import kotlin.metadata.KmClass;
// Structure around a kotlin enum value that can be assigned to a field.
public class KotlinEnumEntryInfo implements KotlinFieldLevelInfo {
@@ -29,10 +29,10 @@
return this;
}
- boolean rewrite(KmClassVisitor visitor, DexField field, NamingLens lens) {
+ boolean rewrite(KmClass clazz, DexField field, NamingLens lens) {
DexString dexString = lens.lookupName(field);
String finalName = dexString.toString();
- visitor.visitEnumEntry(finalName);
+ clazz.getEnumEntries().add(finalName);
return !finalName.equals(enumEntry);
}