Use kotlinc 2.0.20 as max supported and 1.8 as min-supported
This will move kotlinc 1.7 to our old bot testing.
Fixes: b/362425784
Change-Id: I64d55a03a6be9b8877907091c702e72c40860484
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingSingletonTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingSingletonTest.java
index 988651b..ce259f2 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingSingletonTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingSingletonTest.java
@@ -4,12 +4,13 @@
package com.android.tools.r8.kotlin.lambda;
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_9_21;
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_2_0_20;
import static junit.framework.TestCase.assertEquals;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
-import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion;
import com.android.tools.r8.KotlinTestBase;
import com.android.tools.r8.KotlinTestParameters;
import com.android.tools.r8.TestParameters;
@@ -70,13 +71,13 @@
KotlinLambdasInInput.create(getProgramFiles(), getTestName());
assertEquals(
kotlinParameters.getLambdaGeneration().isInvokeDynamic()
- && kotlinParameters.getCompilerVersion() == KotlinCompilerVersion.KOTLIN_DEV
+ && kotlinParameters.getCompilerVersion().isLessThanOrEqualTo(KOTLINC_2_0_20)
? 8
: 2,
lambdasInInput.getNumberOfJStyleLambdas());
assertEquals(
kotlinParameters.getLambdaGeneration().isInvokeDynamic()
- ? (kotlinParameters.getCompilerVersion() == KotlinCompilerVersion.KOTLIN_DEV ? 0 : 6)
+ ? (kotlinParameters.getCompilerVersion().isLessThanOrEqualTo(KOTLINC_2_0_20) ? 0 : 6)
: 7,
lambdasInInput.getNumberOfKStyleLambdas());
@@ -99,9 +100,7 @@
private void inspect(
HorizontallyMergedClassesInspector inspector, KotlinLambdasInInput lambdasInInput) {
// All J-style Kotlin lambdas should be merged into one class.
- if (kotlinParameters
- .getCompilerVersion()
- .isLessThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_9_21)) {
+ if (kotlinParameters.getCompilerVersion().isLessThanOrEqualTo(KOTLINC_1_9_21)) {
inspector.assertIsCompleteMergeGroup(lambdasInInput.getJStyleLambdas());
} else {
assertEquals(
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java b/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java
index e2339f6..055f31c 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/KotlinMetadataTestBase.java
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.kotlin.metadata;
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_2_0_20;
import static com.android.tools.r8.utils.FunctionUtils.ignoreArgument;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
import static junit.framework.TestCase.assertNotNull;
@@ -181,13 +182,16 @@
protected String unresolvedReferenceMessage(KotlinTestParameters param, String ref) {
if (param.isKotlinDev()) {
+ return "unresolved reference 'class " + ref + "'";
+ } else if (param.getCompilerVersion().isGreaterThanOrEqualTo(KOTLINC_2_0_20)) {
return "unresolved reference '" + ref + "'";
+ } else {
+ return "unresolved reference: " + ref;
}
- return "unresolved reference: " + ref;
}
protected String cannotAccessMessage(KotlinTestParameters param, String ref) {
- if (param.isKotlinDev()) {
+ if (param.isNewerThanOrEqualTo(KOTLINC_2_0_20)) {
return "cannot access 'class " + ref + " : Any'";
}
return "cannot access '" + ref + "'";
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
index 24f257b..d6b8c34 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.kotlin.metadata;
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_2_0_20;
import static com.android.tools.r8.utils.DescriptorUtils.descriptorToJavaType;
import static com.android.tools.r8.utils.codeinspector.Matchers.isExtensionFunction;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
@@ -178,8 +179,11 @@
private String sealedClassErrorMessage() {
if (kotlinParameters.isKotlinDev()) {
return "a class can only extend a sealed class or interface declared in the same package";
+ } else if (kotlinParameters.is(KOTLINC_2_0_20)) {
+ return "extending sealed classes or interfaces from a different module is prohibited";
+ } else {
+ return "inheritance of sealed classes or interfaces from different module is prohibited";
}
- return "inheritance of sealed classes or interfaces from different module is prohibited";
}
private void inspectInvalid(CodeInspector inspector) {
diff --git a/src/test/testbase/java/com/android/tools/r8/KotlinCompilerTool.java b/src/test/testbase/java/com/android/tools/r8/KotlinCompilerTool.java
index 8b7b4dd..eb7eb2d 100644
--- a/src/test/testbase/java/com/android/tools/r8/KotlinCompilerTool.java
+++ b/src/test/testbase/java/com/android/tools/r8/KotlinCompilerTool.java
@@ -77,10 +77,11 @@
KOTLINC_1_7_0("kotlin-compiler-1.7.0", KotlinLambdaGeneration.CLASS),
KOTLINC_1_8_0("kotlin-compiler-1.8.0", KotlinLambdaGeneration.CLASS),
KOTLINC_1_9_21("kotlin-compiler-1.9.21", KotlinLambdaGeneration.CLASS),
+ KOTLINC_2_0_20("kotlin-compiler-2.0.20", KotlinLambdaGeneration.INVOKE_DYNAMIC),
KOTLIN_DEV("kotlin-compiler-dev", KotlinLambdaGeneration.INVOKE_DYNAMIC);
- public static final KotlinCompilerVersion MIN_SUPPORTED_VERSION = KOTLINC_1_7_0;
- public static final KotlinCompilerVersion MAX_SUPPORTED_VERSION = KOTLINC_1_9_21;
+ public static final KotlinCompilerVersion MIN_SUPPORTED_VERSION = KOTLINC_2_0_20;
+ public static final KotlinCompilerVersion MAX_SUPPORTED_VERSION = KOTLINC_2_0_20;
private final String folder;
private final KotlinLambdaGeneration defaultLambdaGeneration;