Add kotlin 1.7 to our kotlin test matrix
This will also move kotlin 1.4.20 into the old bots testing.
Contents of README.google:
Name: Kotlin
URL: https://github.com/JetBrains/kotlin/
Version: 1.7.0
Revision: NA
License: Apache License Version 2.0
Change-Id: Ifa042fc9fbcaf132231ea80d8c2fcbbed7cd7253
diff --git a/.gitignore b/.gitignore
index e1b9f6d..d76279a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,6 +120,8 @@
third_party/kotlin/kotlin-compiler-1.5.0
third_party/kotlin/kotlin-compiler-1.6.0.tar.gz
third_party/kotlin/kotlin-compiler-1.6.0
+third_party/kotlin/kotlin-compiler-1.7.0.tar.gz
+third_party/kotlin/kotlin-compiler-1.7.0
third_party/kotlin/kotlin-compiler-dev.tar.gz
third_party/kotlin/kotlin-compiler-dev
third_party/kotlinx-coroutines-1.3.6.tar.gz
diff --git a/build.gradle b/build.gradle
index 7c3743f..5b9c8df 100644
--- a/build.gradle
+++ b/build.gradle
@@ -346,6 +346,7 @@
"kotlin/kotlin-compiler-1.4.20",
"kotlin/kotlin-compiler-1.5.0",
"kotlin/kotlin-compiler-1.6.0",
+ "kotlin/kotlin-compiler-1.7.0",
"kotlinx-coroutines-1.3.6",
"openjdk/openjdk-rt-1.8",
"openjdk/desugar_jdk_libs",
diff --git a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
index 180b043..737e8bd 100644
--- a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
+++ b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
@@ -63,10 +63,11 @@
KOTLINC_1_4_20("kotlin-compiler-1.4.20"),
KOTLINC_1_5_0("kotlin-compiler-1.5.0"),
KOTLINC_1_6_0("kotlin-compiler-1.6.0"),
+ KOTLINC_1_7_0("kotlin-compiler-1.7.0"),
KOTLIN_DEV("kotlin-compiler-dev");
- public static final KotlinCompilerVersion MIN_SUPPORTED_VERSION = KOTLINC_1_4_20;
- public static final KotlinCompilerVersion MAX_SUPPORTED_VERSION = KOTLINC_1_6_0;
+ public static final KotlinCompilerVersion MIN_SUPPORTED_VERSION = KOTLINC_1_5_0;
+ public static final KotlinCompilerVersion MAX_SUPPORTED_VERSION = KOTLINC_1_7_0;
private final String folder;
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
index 3486422..5a7846e 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
@@ -4,9 +4,8 @@
package com.android.tools.r8.kotlin;
-import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_3_72;
-import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_4_20;
-import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLIN_DEV;
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_5_0;
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_6_0;
import com.android.tools.r8.KotlinTestParameters;
import com.android.tools.r8.TestParameters;
@@ -63,7 +62,7 @@
}
@Test
- public void test_dataclass_gettersOnly() throws Exception {
+ public void testDataclassGettersOnly() throws Exception {
String mainClassName = "dataclass.MainGettersOnlyKt";
MethodSignature testMethodSignature =
new MethodSignature("testDataClassGetters", "void", Collections.emptyList());
@@ -99,7 +98,7 @@
}
@Test
- public void test_dataclass_componentOnly() throws Exception {
+ public void testDataclassComponentOnly() throws Exception {
String mainClassName = "dataclass.MainComponentOnlyKt";
MethodSignature testMethodSignature =
new MethodSignature("testAllDataClassComponentFunctions", "void", Collections.emptyList());
@@ -135,7 +134,7 @@
}
@Test
- public void test_dataclass_componentPartial() throws Exception {
+ public void testDataclassComponentPartial() throws Exception {
String mainClassName = "dataclass.MainComponentPartialKt";
MethodSignature testMethodSignature =
new MethodSignature("testSomeDataClassComponentFunctions", "void", Collections.emptyList());
@@ -178,7 +177,7 @@
}
@Test
- public void test_dataclass_copyIsRemovedIfNotUsed() throws Exception {
+ public void testDataclassCopyIsRemovedIfNotUsed() throws Exception {
String mainClassName = "dataclass.MainComponentOnlyKt";
MethodSignature testMethodSignature =
new MethodSignature("testDataClassCopy", "void", Collections.emptyList());
@@ -203,7 +202,7 @@
}
@Test
- public void test_dataclass_copyDefaultIsRemovedIfNotUsed() throws Exception {
+ public void testDataclassCopyDefaultIsRemovedIfNotUsed() throws Exception {
String mainClassName = "dataclass.MainCopyKt";
MethodSignature testMethodSignature =
new MethodSignature("testDataClassCopyWithDefault", "void", Collections.emptyList());
@@ -216,10 +215,10 @@
.addOptionsModification(disableClassInliner))
.inspect(
inspector -> {
- // TODO(b/210828502): Investigate why Person is not removed with kotlin dev.
+ // TODO(b/210828502): Investigate why Person is not removed with kotlin 1.7 and 1.8.
if (allowAccessModification
- && !(kotlinc.isOneOf(KOTLINC_1_3_72, KOTLINC_1_4_20, KOTLIN_DEV)
- && testParameters.isCfRuntime())) {
+ && (kotlinc.isOneOf(KOTLINC_1_5_0, KOTLINC_1_6_0)
+ || testParameters.isDexRuntime())) {
checkClassIsRemoved(inspector, TEST_DATA_CLASS.getClassName());
} else {
ClassSubject dataClass =
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
index d426170..69f454d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
@@ -6,7 +6,6 @@
import static org.hamcrest.CoreMatchers.equalTo;
import com.android.tools.r8.CompilationMode;
-import com.android.tools.r8.KotlinCompilerTool.KotlinTargetVersion;
import com.android.tools.r8.KotlinTestBase;
import com.android.tools.r8.KotlinTestParameters;
import com.android.tools.r8.TestParameters;
@@ -45,7 +44,7 @@
testForR8(parameters.getBackend())
.setMode(CompilationMode.DEBUG)
.addProgramFiles(
- compiledJars.getForConfiguration(kotlinc, KotlinTargetVersion.JAVA_6),
+ compiledJars.getForConfiguration(kotlinc, kotlinParameters.getTargetVersion()),
kotlinc.getKotlinAnnotationJar())
.addProgramFiles(getJavaJarFile(FOLDER))
.setMinApi(parameters.getApiLevel())
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInnerClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInnerClassTest.java
index aa3a51d..452ca8a 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInnerClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInnerClassTest.java
@@ -51,7 +51,7 @@
}
private String replaceInitNameInExpectedBasedOnKotlinVersion(String expected) {
- return kotlinParameters.isNewerThanOrEqualTo(KotlinCompilerVersion.KOTLIN_DEV)
+ return kotlinParameters.isNewerThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_7_0)
? expected.replace("<init>", "`<init>`")
: expected;
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/stringplus/StringPlusTest.java b/src/test/java/com/android/tools/r8/kotlin/stringplus/StringPlusTest.java
index 37b20bd..d189806 100644
--- a/src/test/java/com/android/tools/r8/kotlin/stringplus/StringPlusTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/stringplus/StringPlusTest.java
@@ -97,7 +97,7 @@
MethodSubject methodSubject = clazz.mainMethod();
assertThat(methodSubject, isPresent());
if (kotlinParameters.isNewerThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_5_0)
- && kotlinParameters.isOlderThan(KotlinCompilerVersion.KOTLIN_DEV)) {
+ && kotlinParameters.isOlderThan(KotlinCompilerVersion.KOTLINC_1_7_0)) {
// TODO(b/190489514): We should be able to optimize constant stringPlus calls.
assertThat(methodSubject, CodeMatchers.invokesMethodWithName("stringPlus"));
}
diff --git a/third_party/kotlin/kotlin-compiler-1.7.0.tar.gz.sha1 b/third_party/kotlin/kotlin-compiler-1.7.0.tar.gz.sha1
new file mode 100644
index 0000000..3fb628e
--- /dev/null
+++ b/third_party/kotlin/kotlin-compiler-1.7.0.tar.gz.sha1
@@ -0,0 +1 @@
+55d90d044b7f6809c80183b46f73bdbb9ebf7eaf
\ No newline at end of file