Update tests to handle both types of Kotlin lambda generation

Bug: b/326221483
Change-Id: I545b3e2597f3f18dc88a65cf64fbcec323c323b7
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingCapturesKotlinStyleTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingCapturesKotlinStyleTest.java
index 804dc5b..2c03256 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingCapturesKotlinStyleTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingCapturesKotlinStyleTest.java
@@ -15,6 +15,8 @@
 import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.references.ClassReference;
+import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -73,7 +75,9 @@
     KotlinLambdasInInput lambdasInInput =
         KotlinLambdasInInput.create(getProgramFiles(), getTestName());
     assertEquals(0, lambdasInInput.getNumberOfJStyleLambdas());
-    assertEquals(26, lambdasInInput.getNumberOfKStyleLambdas());
+    assertEquals(
+        kotlinParameters.getLambdaGeneration().isInvokeDynamic() ? 0 : 26,
+        lambdasInInput.getNumberOfKStyleLambdas());
 
     testForR8(parameters.getBackend())
         .addProgramFiles(getProgramFiles())
@@ -97,18 +101,34 @@
       return;
     }
 
-    inspector
-        .assertIsCompleteMergeGroup(
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$1"),
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$2"),
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$3"),
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$4"))
-        .assertIsCompleteMergeGroup(
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$5"),
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$6"),
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$7"),
-            lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$8"))
-        .assertNoOtherClassesMerged();
+    if (kotlinParameters.getLambdaGeneration().isClass()) {
+      inspector
+          .assertIsCompleteMergeGroup(
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$1"),
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$2"),
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$3"),
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$4"))
+          .assertIsCompleteMergeGroup(
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$5"),
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$6"),
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$7"),
+              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$test2$8"))
+          .assertNoOtherClassesMerged();
+    } else {
+      ClassReference mainKt = Reference.classFromTypeName(getMainClassName());
+      inspector
+          .assertIsCompleteMergeGroup(
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 0),
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 2),
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 3),
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 4))
+          .assertIsCompleteMergeGroup(
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 5),
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 6),
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 7),
+              SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 8))
+          .assertNoOtherClassesMerged();
+    }
   }
 
   private void inspect(CodeInspector inspector, KotlinLambdasInInput lambdasInInput) {
@@ -118,7 +138,11 @@
         presentKStyleLambdas.add(classReference);
       }
     }
-    assertEquals(parameters.isCfRuntime() ? 0 : 5, presentKStyleLambdas.size());
+    assertEquals(
+        parameters.isCfRuntime() || kotlinParameters.getLambdaGeneration().isInvokeDynamic()
+            ? 0
+            : 5,
+        presentKStyleLambdas.size());
   }
 
   private String getExpectedOutput() {
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingKeepAttributesKotlinStyleTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingKeepAttributesKotlinStyleTest.java
index 733b7f4..0671aa4 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingKeepAttributesKotlinStyleTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingKeepAttributesKotlinStyleTest.java
@@ -18,6 +18,8 @@
 import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.references.ClassReference;
+import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -84,7 +86,9 @@
     KotlinLambdasInInput lambdasInInput =
         KotlinLambdasInInput.create(getProgramFiles(), getTestName());
     assertEquals(0, lambdasInInput.getNumberOfJStyleLambdas());
-    assertEquals(24, lambdasInInput.getNumberOfKStyleLambdas());
+    assertEquals(
+        kotlinParameters.getLambdaGeneration().isInvokeDynamic() ? 0 : 24,
+        lambdasInInput.getNumberOfKStyleLambdas());
 
     testForR8(parameters.getBackend())
         .addProgramFiles(getProgramFiles())
@@ -106,99 +110,135 @@
   private void inspect(
       HorizontallyMergedClassesInspector inspector, KotlinLambdasInInput lambdasInInput) {
     if (parameters.isCfRuntime()) {
-      inspector
-          .assertIsCompleteMergeGroup(
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$4"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$5"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$6"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$7"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$8"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$9"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$4"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$5"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$6"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$7"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$8"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$9"))
-          .assertIsCompleteMergeGroup(
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$2"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$3"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$2"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$3"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testThird$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testThird$2"))
-          .assertNoOtherClassesMerged();
+      if (kotlinParameters.getLambdaGeneration().isClass()) {
+        inspector
+            .assertIsCompleteMergeGroup(
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$4"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$5"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$6"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$7"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$8"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$9"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$4"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$5"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$6"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$7"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$8"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$9"))
+            .assertIsCompleteMergeGroup(
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$2"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$3"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$2"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$3"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testThird$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testThird$2"))
+            .assertNoOtherClassesMerged();
+      } else {
+        inspector.assertNoClassesMerged();
+      }
     } else {
-      inspector
-          .assertIsCompleteMergeGroup(
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$2"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$3"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$4"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$2"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$3"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$2"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$3"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testThird$1"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testThird$2"))
-          .assertIsCompleteMergeGroup(
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$4"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$5"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$6"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$7"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$8"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testFirst$9"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$4"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$5"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$6"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$7"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$8"),
-              lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                  getTestName(), "MainKt$testSecond$9"))
-          .assertNoOtherClassesMerged();
+      if (kotlinParameters.getLambdaGeneration().isClass()) {
+        inspector
+            .assertIsCompleteMergeGroup(
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$2"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$3"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(getTestName(), "MainKt$main$4"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$2"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$3"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$2"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$3"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testThird$1"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testThird$2"))
+            .assertIsCompleteMergeGroup(
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$4"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$5"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$6"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$7"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$8"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testFirst$9"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$4"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$5"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$6"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$7"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$8"),
+                lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                    getTestName(), "MainKt$testSecond$9"))
+            .assertNoOtherClassesMerged();
+      } else {
+        ClassReference mainKt = Reference.classFromTypeName(getMainClassName());
+        inspector
+            .assertIsCompleteMergeGroup(
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 9),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 10),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 11),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 12),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 13),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 14),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 19),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 18),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 20),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 21),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 22),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 23))
+            .assertIsCompleteMergeGroup(
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 0),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 1),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 2),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 3),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 4),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 5),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 6),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 7),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 8),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 15),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 16),
+                SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 17))
+            .assertNoOtherClassesMerged();
+      }
     }
   }
 
@@ -209,7 +249,8 @@
         lambdasInOutput.add(classReference);
       }
     }
-    assertEquals(2, lambdasInOutput.size());
+    assertEquals(
+        kotlinParameters.getLambdaGeneration().isInvokeDynamic() ? 0 : 2, lambdasInOutput.size());
   }
 
   private String getExpectedOutput() {
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 7d2a464..328ad69 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
@@ -73,7 +73,9 @@
     KotlinLambdasInInput lambdasInInput =
         KotlinLambdasInInput.create(getProgramFiles(), getTestName());
     assertEquals(2, lambdasInInput.getNumberOfJStyleLambdas());
-    assertEquals(7, lambdasInInput.getNumberOfKStyleLambdas());
+    assertEquals(
+        kotlinParameters.getLambdaGeneration().isInvokeDynamic() ? 6 : 7,
+        lambdasInInput.getNumberOfKStyleLambdas());
 
     testForR8(parameters.getBackend())
         .addProgramFiles(getProgramFiles())
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java
index 05ae91d..5a69bf9 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java
@@ -15,6 +15,8 @@
 import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.references.ClassReference;
+import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.synthesis.SyntheticItemsTestUtils;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -73,7 +75,9 @@
     KotlinLambdasInInput lambdasInInput =
         KotlinLambdasInInput.create(getProgramFiles(), getTestName());
     assertEquals(0, lambdasInInput.getNumberOfJStyleLambdas());
-    assertEquals(28, lambdasInInput.getNumberOfKStyleLambdas());
+    assertEquals(
+        kotlinParameters.getLambdaGeneration().isInvokeDynamic() ? 0 : 28,
+        lambdasInInput.getNumberOfKStyleLambdas());
 
     testForR8(parameters.getBackend())
         .addProgramFiles(getProgramFiles())
@@ -92,16 +96,33 @@
 
   private void inspect(
       HorizontallyMergedClassesInspector inspector, KotlinLambdasInInput lambdasInInput) {
-    inspector
-        .applyIf(
-            parameters.isDexRuntime(),
-            i ->
-                i.assertIsCompleteMergeGroup(
-                    lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                        getTestName(), "MainKt$testStateless$11"),
-                    lambdasInInput.getKStyleLambdaReferenceFromTypeName(
-                        getTestName(), "MainKt$testStateless$12")))
-        .assertNoOtherClassesMerged();
+    if (parameters.isCfRuntime()) {
+      inspector.applyIf(
+          kotlinParameters.getLambdaGeneration().isInvokeDynamic(),
+          i ->
+              i.assertIsCompleteMergeGroup(
+                      Reference.classFromTypeName("kotlin.jvm.functions.Function0"),
+                      Reference.classFromTypeName("kotlin.jvm.functions.Function1"),
+                      Reference.classFromTypeName("kotlin.jvm.functions.Function2"),
+                      Reference.classFromTypeName("kotlin.jvm.functions.Function3"),
+                      Reference.classFromTypeName("kotlin.jvm.functions.Function22"))
+                  .assertNoOtherClassesMerged());
+    } else {
+      ClassReference mainKt = Reference.classFromTypeName(getMainClassName());
+      inspector.applyIf(
+          kotlinParameters.getLambdaGeneration().isClass(),
+          i ->
+              i.assertIsCompleteMergeGroup(
+                  lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                      getTestName(), "MainKt$testStateless$11"),
+                  lambdasInInput.getKStyleLambdaReferenceFromTypeName(
+                      getTestName(), "MainKt$testStateless$12")),
+          i ->
+              i.assertIsCompleteMergeGroup(
+                      SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 0),
+                      SyntheticItemsTestUtils.syntheticLambdaClass(mainKt, 1))
+                  .assertNoOtherClassesMerged());
+    }
   }
 
   private void inspect(CodeInspector inspector, KotlinLambdasInInput lambdasInInput) {
@@ -111,7 +132,8 @@
         lambdasInOutput.add(classReference);
       }
     }
-    assertEquals(1, lambdasInOutput.size());
+    assertEquals(
+        kotlinParameters.getLambdaGeneration().isInvokeDynamic() ? 0 : 1, lambdasInOutput.size());
   }
 
   private String getExpectedOutput() {