Correct kotlin source debug extension tests for 1.4

Bug: 179666509
Bug: 185358363
Change-Id: Ifca38dc2be63aef05c8e45a846241c8af670dca1
diff --git a/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java b/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
index 550e21f..8540d13 100644
--- a/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
+++ b/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
@@ -9,13 +9,11 @@
 import static com.android.tools.r8.ToolHelper.getKotlinCompilers;
 import static com.android.tools.r8.ToolHelper.getKotlinStdlibJar;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler;
-import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestRuntime;
@@ -77,15 +75,10 @@
   }
 
   private void inspectSourceDebugExtension(CodeInspector inspector) {
-    ClassSubject clazz = inspector.clazz("retrace.InlineFunctionKt");
+    ClassSubject clazz = inspector.clazz("retrace.MainKt");
     assertThat(clazz, isPresent());
     AnnotationSubject sourceDebugExtensions =
         clazz.annotation("dalvik.annotation.SourceDebugExtension");
-    // TODO(b/179866574): This is somehow not present
-    if (kotlinCompiler.is(KotlinCompilerVersion.KOTLINC_1_4_20)) {
-      assertThat(sourceDebugExtensions, not(isPresent()));
-    } else {
-      assertThat(sourceDebugExtensions, isPresent());
-    }
+    assertThat(sourceDebugExtensions, isPresent());
   }
 }
diff --git a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
index b65563e..610097d 100644
--- a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
@@ -3,7 +3,6 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.retrace;
 
-import static com.android.tools.r8.Collectors.toSingle;
 import static com.android.tools.r8.ToolHelper.getFilesInTestFolderRelativeToClass;
 import static com.android.tools.r8.ToolHelper.getKotlinAnnotationJar;
 import static com.android.tools.r8.ToolHelper.getKotlinStdlibJar;
@@ -14,7 +13,6 @@
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.StringContains.containsString;
-import static org.junit.Assume.assumeTrue;
 
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.KotlinCompilerTool.KotlinCompilerVersion;
@@ -22,6 +20,7 @@
 import com.android.tools.r8.KotlinTestParameters;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.naming.retrace.StackTrace;
+import com.android.tools.r8.utils.ListUtils;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.android.tools.r8.utils.codeinspector.InstructionSubject;
 import com.android.tools.r8.utils.codeinspector.Matchers.LinePosition;
@@ -30,6 +29,7 @@
 import java.nio.file.Path;
 import java.util.Collection;
 import java.util.List;
+import java.util.stream.Collectors;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -69,10 +69,12 @@
     }
   }
 
+  private int getObfuscatedLinePosition() {
+    return kotlinc.is(KotlinCompilerVersion.KOTLINC_1_4_20) ? 32 : 43;
+  }
+
   @Test
   public void testRuntime() throws Exception {
-    // TODO(b/179666509): SMAP has changed.
-    assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72));
     testForRuntime(parameters)
         .addProgramFiles(compilationResults.getForConfiguration(kotlinc, targetVersion))
         .addRunClasspathFiles(buildOnDexRuntime(parameters, getKotlinStdlibJar(kotlinc)))
@@ -80,13 +82,12 @@
         .assertFailureWithErrorThatMatches(containsString("foo"))
         .assertFailureWithErrorThatMatches(
             containsString(
-                "at retrace.InlineFunctionsInSameFileKt.main(InlineFunctionsInSameFile.kt:43"));
+                "at retrace.InlineFunctionsInSameFileKt.main(InlineFunctionsInSameFile.kt:"
+                    + getObfuscatedLinePosition()));
   }
 
   @Test
   public void testRetraceKotlinInlineStaticFunction() throws Exception {
-    // TODO(b/179666509): SMAP has changed.
-    assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72));
     Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion);
     CodeInspector kotlinInspector = new CodeInspector(kotlinSources);
     testForR8(parameters.getBackend())
@@ -116,7 +117,10 @@
                           8,
                           FILENAME_INLINE),
                       LinePosition.create(
-                          mainSubject.asFoundMethodSubject(), 1, 43, FILENAME_INLINE));
+                          mainSubject.asFoundMethodSubject(),
+                          1,
+                          getObfuscatedLinePosition(),
+                          FILENAME_INLINE));
               checkInlineInformation(stackTrace, codeInspector, mainSubject, inlineStack);
             });
   }
@@ -128,10 +132,11 @@
       LinePosition inlineStack) {
     assertThat(mainSubject, isPresent());
     RetraceFrameResult retraceResult =
-        mainSubject
-            .streamInstructions()
-            .filter(InstructionSubject::isThrow)
-            .collect(toSingle())
+        ListUtils.last(
+                mainSubject
+                    .streamInstructions()
+                    .filter(InstructionSubject::isThrow)
+                    .collect(Collectors.toList()))
             .retraceLinePosition(codeInspector.retrace());
     assertThat(retraceResult, isInlineFrame());
     assertThat(retraceResult, isInlineStack(inlineStack));
diff --git a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
index 17d4dc6..232c1f5 100644
--- a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
@@ -4,7 +4,6 @@
 
 package com.android.tools.r8.retrace;
 
-import static com.android.tools.r8.Collectors.toSingle;
 import static com.android.tools.r8.ToolHelper.getFilesInTestFolderRelativeToClass;
 import static com.android.tools.r8.ToolHelper.getKotlinAnnotationJar;
 import static com.android.tools.r8.ToolHelper.getKotlinStdlibJar;
@@ -15,14 +14,13 @@
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.StringContains.containsString;
-import static org.junit.Assume.assumeTrue;
 
 import com.android.tools.r8.CompilationMode;
-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;
 import com.android.tools.r8.naming.retrace.StackTrace;
+import com.android.tools.r8.utils.ListUtils;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
 import com.android.tools.r8.utils.codeinspector.InstructionSubject;
@@ -32,6 +30,7 @@
 import java.nio.file.Path;
 import java.util.Collection;
 import java.util.List;
+import java.util.stream.Collectors;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -96,8 +95,6 @@
 
   @Test
   public void testRetraceKotlinInlineStaticFunction() throws Exception {
-    // TODO(b/179666509): SMAP has changed.
-    assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72));
     String main = "retrace.MainKt";
     String mainFileName = "Main.kt";
     Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion);
@@ -128,8 +125,6 @@
 
   @Test
   public void testRetraceKotlinInlineInstanceFunction() throws Exception {
-    // TODO(b/179666509): SMAP has changed.
-    assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72));
     String main = "retrace.MainInstanceKt";
     String mainFileName = "MainInstance.kt";
     Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion);
@@ -163,8 +158,6 @@
 
   @Test
   public void testRetraceKotlinNestedInlineFunction() throws Exception {
-    // TODO(b/179666509): SMAP has changed.
-    assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72));
     String main = "retrace.MainNestedKt";
     String mainFileName = "MainNested.kt";
     Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion);
@@ -197,8 +190,6 @@
 
   @Test
   public void testRetraceKotlinNestedInlineFunctionOnFirstLine() throws Exception {
-    // TODO(b/179666509): SMAP has changed.
-    assumeTrue(kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72));
     String main = "retrace.MainNestedFirstLineKt";
     String mainFileName = "MainNestedFirstLine.kt";
     Path kotlinSources = compilationResults.getForConfiguration(kotlinc, targetVersion);
@@ -236,10 +227,11 @@
       LinePosition inlineStack) {
     assertThat(mainSubject, isPresent());
     RetraceFrameResult retraceResult =
-        mainSubject
-            .streamInstructions()
-            .filter(InstructionSubject::isThrow)
-            .collect(toSingle())
+        ListUtils.last(
+                mainSubject
+                    .streamInstructions()
+                    .filter(InstructionSubject::isThrow)
+                    .collect(Collectors.toList()))
             .retraceLinePosition(codeInspector.retrace());
     assertThat(retraceResult, isInlineFrame());
     assertThat(retraceResult, isInlineStack(inlineStack));
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
index aa6d435..1aad4cc 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java
@@ -523,7 +523,6 @@
         Box<Boolean> returnValue = new Box<>();
         single.visitFrames(
             (method, __) -> {
-              boolean sameMethod;
               LinePosition currentInline = currentPosition.get();
               if (currentInline == null) {
                 returnValue.set(false);
@@ -533,7 +532,7 @@
                 returnValue.set(false);
                 return;
               }
-              sameMethod =
+              boolean sameMethod =
                   method.asKnown().getMethodReference().equals(currentInline.methodReference);
               boolean samePosition =
                   method.getOriginalPositionOrDefault(currentInline.minifiedPosition)