Revert deprecation in r8 test
Bug: b/341991457
Change-Id: I12d50adbd1d4167921ee9d372c20c6c17a4e1740
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java b/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java
index d541b5d..3bb712e 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinFlagUtils.java
@@ -52,7 +52,7 @@
private static final String DECLARES_DEFAULT_VALUE_KEY = "declaresDefaultValue";
private static final String CROSS_INLINE_KEY = "crossInline";
private static final String NO_INLINE_KEY = "noInline";
- private static final String REIFIED_KEY = "reified_key";
+ public static final String REIFIED_KEY = "reified";
public static Map<String, Object> extractFlags(KmProperty src) {
Map<String, Object> map = new HashMap<>();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
index 12fe3cb..117ae24 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.KotlinTestParameters;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.kotlin.KotlinFlagUtils;
import com.android.tools.r8.shaking.ProguardKeepAttributes;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -28,9 +29,11 @@
import com.android.tools.r8.utils.codeinspector.KmTypeProjectionSubject;
import com.android.tools.r8.utils.codeinspector.KmTypeSubject;
import com.android.tools.r8.utils.codeinspector.KmValueParameterSubject;
+import com.google.common.collect.ImmutableMap;
import java.nio.file.Path;
import java.util.Collection;
import java.util.List;
+import java.util.Map;
import kotlin.metadata.KmClassifier.TypeParameter;
import kotlin.metadata.KmVariance;
import org.junit.Test;
@@ -42,8 +45,10 @@
private static final String LIB_PKG = PKG + ".typeargument_lib.";
- private static final int FLAG_NONE = 0;
- private static final int FLAG_REIFIED = 1;
+ private static final Map<String, Object> FLAG_NONE =
+ ImmutableMap.of(KotlinFlagUtils.REIFIED_KEY, false);
+ private static final Map<String, Object> FLAG_REIFIED =
+ ImmutableMap.of(KotlinFlagUtils.REIFIED_KEY, true);
private static final String EXPECTED =
StringUtils.lines(
@@ -258,7 +263,11 @@
}
private void inspectTypeParameter(
- KmTypeParameterSubjectMixin subject, String name, int id, int flags, KmVariance variance) {
+ KmTypeParameterSubjectMixin subject,
+ String name,
+ int id,
+ Map<String, Object> flags,
+ KmVariance variance) {
KmTypeParameterSubject typeParameter = subject.kmTypeParameterWithUniqueName(name);
assertThat(typeParameter, isPresent());
assertEquals(id, typeParameter.getId());
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AbsentKmTypeParameterSubject.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AbsentKmTypeParameterSubject.java
index 87e4427..1023d84 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AbsentKmTypeParameterSubject.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/AbsentKmTypeParameterSubject.java
@@ -5,7 +5,9 @@
package com.android.tools.r8.utils.codeinspector;
import com.android.tools.r8.errors.Unreachable;
+import com.google.common.collect.ImmutableMap;
import java.util.List;
+import java.util.Map;
import kotlin.metadata.KmVariance;
public class AbsentKmTypeParameterSubject extends KmTypeParameterSubject {
@@ -31,8 +33,8 @@
}
@Override
- public int getFlags() {
- return 0;
+ public Map<String, Object> getFlags() {
+ return ImmutableMap.of();
}
@Override
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java
index 7a6ebc9..21329bf 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java
@@ -10,19 +10,13 @@
import java.util.Objects;
import java.util.stream.Collectors;
import kotlin.metadata.KmDeclarationContainer;
-import kotlin.metadata.KmExtensionType;
import kotlin.metadata.KmFunction;
-import kotlin.metadata.KmFunctionExtensionVisitor;
-import kotlin.metadata.KmFunctionVisitor;
import kotlin.metadata.KmProperty;
-import kotlin.metadata.KmPropertyExtensionVisitor;
-import kotlin.metadata.KmPropertyVisitor;
import kotlin.metadata.KmType;
import kotlin.metadata.KmTypeAlias;
+import kotlin.metadata.jvm.JvmExtensionsKt;
import kotlin.metadata.jvm.JvmFieldSignature;
-import kotlin.metadata.jvm.JvmFunctionExtensionVisitor;
import kotlin.metadata.jvm.JvmMethodSignature;
-import kotlin.metadata.jvm.JvmPropertyExtensionVisitor;
public interface FoundKmDeclarationContainerSubject extends KmDeclarationContainerSubject {
@@ -61,21 +55,7 @@
JvmMethodSignature signature = null;
KmFunctionProcessor(KmFunction kmFunction) {
- kmFunction.accept(new KmFunctionVisitor() {
- @Override
- public KmFunctionExtensionVisitor visitExtensions(KmExtensionType type) {
- if (type != JvmFunctionExtensionVisitor.TYPE) {
- return null;
- }
- return new JvmFunctionExtensionVisitor() {
- @Override
- public void visit(JvmMethodSignature desc) {
- assert signature == null : signature.asString();
- signature = desc;
- }
- };
- }
- });
+ signature = JvmExtensionsKt.getSignature(kmFunction);
// We don't check Kotlin types in tests, but be aware of the relocation issue.
// See b/70169921#comment57 for more details.
}
@@ -161,29 +141,9 @@
JvmMethodSignature setterSignature = null;
KmPropertyProcessor(KmProperty kmProperty) {
- kmProperty.accept(new KmPropertyVisitor() {
- @Override
- public KmPropertyExtensionVisitor visitExtensions(KmExtensionType type) {
- if (type != JvmPropertyExtensionVisitor.TYPE) {
- return null;
- }
- return new JvmPropertyExtensionVisitor() {
- @Override
- public void visit(
- int flags,
- JvmFieldSignature fieldDesc,
- JvmMethodSignature getterDesc,
- JvmMethodSignature setterDesc) {
- assert fieldSignature == null : fieldSignature.asString();
- fieldSignature = fieldDesc;
- assert getterSignature == null : getterSignature.asString();
- getterSignature = getterDesc;
- assert setterSignature == null : setterSignature.asString();
- setterSignature = setterDesc;
- }
- };
- }
- });
+ fieldSignature = JvmExtensionsKt.getFieldSignature(kmProperty);
+ getterSignature = JvmExtensionsKt.getGetterSignature(kmProperty);
+ setterSignature = JvmExtensionsKt.getSetterSignature(kmProperty);
// We don't check Kotlin types in tests, but be aware of the relocation issue.
// See b/70169921#comment57 for more details.
}
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmTypeParameterSubject.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmTypeParameterSubject.java
index 7640064..c8ce440 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmTypeParameterSubject.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/FoundKmTypeParameterSubject.java
@@ -1,6 +1,8 @@
package com.android.tools.r8.utils.codeinspector;
+import com.android.tools.r8.kotlin.KotlinFlagUtils;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
import kotlin.metadata.KmTypeParameter;
import kotlin.metadata.KmVariance;
@@ -36,8 +38,8 @@
}
@Override
- public int getFlags() {
- return kmTypeParameter.getFlags();
+ public Map<String, Object> getFlags() {
+ return KotlinFlagUtils.extractFlags(kmTypeParameter);
}
@Override
@@ -60,7 +62,8 @@
KmTypeParameter other = ((FoundKmTypeParameterSubject) obj).kmTypeParameter;
if (!kmTypeParameter.getName().equals(other.getName())
|| kmTypeParameter.getId() != other.getId()
- || kmTypeParameter.getFlags() != other.getFlags()
+ || !(KotlinFlagUtils.extractFlags(kmTypeParameter)
+ .equals(KotlinFlagUtils.extractFlags(other)))
|| kmTypeParameter.getVariance() != other.getVariance()) {
return false;
}
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeParameterSubject.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeParameterSubject.java
index bc70b90..d484199 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeParameterSubject.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeParameterSubject.java
@@ -5,13 +5,14 @@
package com.android.tools.r8.utils.codeinspector;
import java.util.List;
+import java.util.Map;
import kotlin.metadata.KmVariance;
public abstract class KmTypeParameterSubject extends Subject {
public abstract int getId();
- public abstract int getFlags();
+ public abstract Map<String, Object> getFlags();
public abstract KmVariance getVariance();
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeSubject.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeSubject.java
index 0bdeb7e..81828a7 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeSubject.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmTypeSubject.java
@@ -6,15 +6,16 @@
import static com.android.tools.r8.utils.DescriptorUtils.getDescriptorFromKotlinClassifier;
import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.kotlin.KotlinFlagUtils;
import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.utils.Box;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import kotlin.metadata.KmAnnotation;
+import kotlin.metadata.KmClassifier;
+import kotlin.metadata.KmClassifier.TypeAlias;
import kotlin.metadata.KmFlexibleTypeUpperBound;
import kotlin.metadata.KmType;
-import kotlin.metadata.KmTypeVisitor;
import kotlin.metadata.jvm.JvmExtensionsKt;
public class KmTypeSubject extends Subject {
@@ -32,23 +33,17 @@
if (kmType == null) {
return null;
}
- Box<String> descriptor = new Box<>(null);
- kmType.accept(new KmTypeVisitor() {
- @Override
- public void visitClass(String name) {
- // We don't check Kotlin types in tests, but be aware of the relocation issue.
- // See b/70169921#comment25 for more details.
- assert descriptor.get() == null;
- descriptor.set(getDescriptorFromKotlinClassifier(name));
- }
-
- @Override
- public void visitTypeAlias(String name) {
- assert descriptor.get() == null;
- descriptor.set(getDescriptorFromKotlinClassifier(name));
- }
- });
- return descriptor.get();
+ KmClassifier classifier = kmType.getClassifier();
+ if (classifier instanceof KmClassifier.Class) {
+ KmClassifier.Class classClassifier = (KmClassifier.Class) classifier;
+ return getDescriptorFromKotlinClassifier(classClassifier.getName());
+ }
+ if (classifier instanceof KmClassifier.TypeAlias) {
+ TypeAlias typeAliasClassifier = (TypeAlias) classifier;
+ return getDescriptorFromKotlinClassifier(typeAliasClassifier.getName());
+ }
+ // The case KmClassifier.TypeParameter is not implemented (?).
+ return null;
}
public String descriptor() {
@@ -107,7 +102,7 @@
if (one == null || other == null) {
return false;
}
- if (one.getFlags() != other.getFlags()) {
+ if (!KotlinFlagUtils.extractFlags(one).equals(KotlinFlagUtils.extractFlags(other))) {
return false;
}
if (!one.classifier.toString().equals(other.classifier.toString())) {
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmValueParameterSubject.java b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmValueParameterSubject.java
index 2586325..45ffeda 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmValueParameterSubject.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/codeinspector/KmValueParameterSubject.java
@@ -3,9 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils.codeinspector;
-import static kotlin.metadata.Flag.ValueParameter.DECLARES_DEFAULT_VALUE;
-
import com.android.tools.r8.errors.Unreachable;
+import kotlin.metadata.Attributes;
import kotlin.metadata.KmValueParameter;
public class KmValueParameterSubject extends Subject {
@@ -33,7 +32,7 @@
}
public boolean declaresDefaultValue() {
- return DECLARES_DEFAULT_VALUE.invoke(kmValueParameter.getFlags());
+ return Attributes.getDeclaresDefaultValue(kmValueParameter);
}
@Override