Add kotlin 1.6 to test matrix

Contents of README.google:

Name: Kotlin
URL: https://github.com/JetBrains/kotlin/
Version: 1.6.0
Revision: NA
License: Apache License Version 2.0

Bug: 207645616
Change-Id: I624726cbc0895cda4e1c031a63136ad86fa49261
diff --git a/.gitignore b/.gitignore
index d1bacd1..052f0a6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,6 +114,8 @@
 third_party/kotlin/kotlin-compiler-1.4.20
 third_party/kotlin/kotlin-compiler-1.5.0.tar.gz
 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-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 fba1f92..921a270 100644
--- a/build.gradle
+++ b/build.gradle
@@ -351,6 +351,7 @@
                 "kotlin/kotlin-compiler-1.3.72",
                 "kotlin/kotlin-compiler-1.4.20",
                 "kotlin/kotlin-compiler-1.5.0",
+                "kotlin/kotlin-compiler-1.6.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 94ceeb4..33c5355 100644
--- a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
+++ b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
@@ -61,10 +61,11 @@
     KOTLINC_1_3_72("kotlin-compiler-1.3.72"),
     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"),
     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_5_0;
+    public static final KotlinCompilerVersion MAX_SUPPORTED_VERSION = KOTLINC_1_6_0;
 
     private final String folder;
 
diff --git a/src/test/java/com/android/tools/r8/debug/DebugTestBase.java b/src/test/java/com/android/tools/r8/debug/DebugTestBase.java
index 5232896..59d408f 100644
--- a/src/test/java/com/android/tools/r8/debug/DebugTestBase.java
+++ b/src/test/java/com/android/tools/r8/debug/DebugTestBase.java
@@ -8,6 +8,7 @@
 import com.android.tools.r8.ToolHelper.ArtCommandBuilder;
 import com.android.tools.r8.ToolHelper.DexVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
+import com.android.tools.r8.debug.DebugTestBase.JUnit3Wrapper.Command.NopCommand;
 import com.android.tools.r8.errors.Unreachable;
 import com.android.tools.r8.graph.ClassAccessFlags;
 import com.android.tools.r8.naming.ClassNameMapper;
@@ -390,6 +391,11 @@
     return stepInto(DEFAULT_FILTER);
   }
 
+  protected final JUnit3Wrapper.Command applyIf(
+      boolean condition, Supplier<JUnit3Wrapper.Command> action) {
+    return condition ? action.get() : new NopCommand();
+  }
+
   protected final JUnit3Wrapper.Command stepInto(StepFilter stepFilter) {
     return step(StepKind.INTO, stepFilter);
   }
@@ -1763,6 +1769,14 @@
         }
       }
 
+      class NopCommand implements Command {
+
+        @Override
+        public void perform(JUnit3Wrapper testBase) {
+          // Intentionally empty - it is a nop.
+        }
+      }
+
       // Break on exceptions thrown in className.methodName.
       class BreakOnExceptionCommand implements Command {
         private static final int ALL_EXCEPTIONS = 0;
diff --git a/src/test/java/com/android/tools/r8/debug/KotlinInlineTest.java b/src/test/java/com/android/tools/r8/debug/KotlinInlineTest.java
index d205f26..4d44f78 100644
--- a/src/test/java/com/android/tools/r8/debug/KotlinInlineTest.java
+++ b/src/test/java/com/android/tools/r8/debug/KotlinInlineTest.java
@@ -6,6 +6,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion;
 import com.android.tools.r8.KotlinTestParameters;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.kotlin.AbstractR8KotlinTestBase;
@@ -335,6 +336,10 @@
         checkLocals(left_mangledLvName, right_mangledLvName),
         // Enter "foo"
         stepInto(),
+        // TODO(b/207743106): Remove when resolved.
+        applyIf(
+            kotlinParameters.isNewerThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_6_0),
+            this::stepInto),
         checkMethod(DEBUGGEE_CLASS, "foo"),
         checkLine(SOURCE_FILE, 34),
         stepOut(),
@@ -384,6 +389,10 @@
         checkNoLocal(inlinee2_lambda2_inlineScope),
         // Enter the call to "foo"
         stepInto(),
+        // TODO(b/207743106): Remove when resolved.
+        applyIf(
+            kotlinParameters.isNewerThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_6_0),
+            this::stepInto),
         checkMethod(DEBUGGEE_CLASS, "foo"),
         checkLine(SOURCE_FILE, 34),
         run());
diff --git a/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java b/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java
index f93bfb4..ebba822 100644
--- a/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java
+++ b/src/test/java/com/android/tools/r8/debug/KotlinStdLibCompilationTest.java
@@ -14,6 +14,8 @@
 import com.android.tools.r8.TestDiagnosticMessages;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersBuilder;
+import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.utils.AndroidApiLevel;
 import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -53,6 +55,7 @@
     KotlinCompiler compiler = kotlinTestParameters.getCompiler();
     testForR8(parameters.getBackend())
         .addProgramFiles(compiler.getKotlinStdlibJar(), compiler.getKotlinAnnotationJar())
+        .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.LATEST))
         .addKeepAllAttributes()
         .allowDiagnosticWarningMessages()
         .noMinification()
diff --git a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
index 5c45b49..0b10725 100644
--- a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
+++ b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
@@ -3,8 +3,6 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.jsr45;
 
-import static com.android.tools.r8.ToolHelper.getDefaultAndroidJar;
-
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.D8;
 import com.android.tools.r8.D8Command;
@@ -69,7 +67,7 @@
         R8Command.builder()
             .addProgramFiles(inputPath)
             .addProgramFiles(kotlinc.getKotlinStdlibJar(), kotlinc.getKotlinAnnotationJar())
-            .addLibraryFiles(getDefaultAndroidJar())
+            .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.LATEST))
             .setOutput(outputPath, OutputMode.DexIndexed)
             .addProguardConfigurationFiles(keepRulesPath)
             .build());
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
index 67c908e..50b5572 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
@@ -5,9 +5,11 @@
 package com.android.tools.r8.kotlin;
 
 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 static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 
 import com.android.tools.r8.KotlinTestParameters;
 import com.android.tools.r8.R8TestBuilder;
@@ -79,6 +81,8 @@
       KotlinTestParameters kotlinParameters,
       boolean allowAccessModification) {
     super(parameters, kotlinParameters, allowAccessModification);
+    // TODO(b/207736382): Figure out why we cannot inline/merge.
+    assumeTrue(kotlinParameters.getCompiler().isNot(KOTLINC_1_6_0));
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
index 5a60483..66da10d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
@@ -4,7 +4,9 @@
 
 package com.android.tools.r8.kotlin;
 
+import static com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion.KOTLINC_1_6_0;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 
 import com.android.tools.r8.KotlinTestParameters;
 import com.android.tools.r8.TestParameters;
@@ -107,6 +109,8 @@
       KotlinTestParameters kotlinParameters,
       boolean allowAccessModification) {
     super(parameters, kotlinParameters, allowAccessModification);
+    // TODO(b/207736382): Figure out why we cannot inline/merge.
+    assumeTrue(kotlinParameters.getCompiler().isNot(KOTLINC_1_6_0));
   }
 
   @Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java b/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java
index 1ad87d5..20c6f72 100644
--- a/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/reflection/KotlinReflectTest.java
@@ -16,6 +16,7 @@
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.kotlin.metadata.KotlinMetadataTestBase;
 import com.android.tools.r8.shaking.ProguardKeepAttributes;
+import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.DescriptorUtils;
 import com.android.tools.r8.utils.FileUtils;
 import java.io.File;
@@ -59,6 +60,7 @@
         .addProgramFiles(compiledJars.getForConfiguration(kotlinc, targetVersion))
         .addProgramFiles(kotlinc.getKotlinStdlibJar())
         .addProgramFiles(kotlinc.getKotlinReflectJar())
+        .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.LATEST))
         .run(parameters.getRuntime(), PKG + ".SimpleReflectKt")
         .assertSuccessWithOutputLines(EXPECTED_OUTPUT);
   }
diff --git a/third_party/kotlin/kotlin-compiler-1.6.0.tar.gz.sha1 b/third_party/kotlin/kotlin-compiler-1.6.0.tar.gz.sha1
new file mode 100644
index 0000000..0a1ac8f
--- /dev/null
+++ b/third_party/kotlin/kotlin-compiler-1.6.0.tar.gz.sha1
@@ -0,0 +1 @@
+bd6cc2fbbc946a62268f76157aa4643b021b9b00
\ No newline at end of file