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