Only retain Kotlin Metadata for non-pinned lambdas

Change-Id: I9b7b563a7bf918ddee4f3f0703b388ad9dcb45d1
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
index df06499..0e02914 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
@@ -24,11 +24,10 @@
 import kotlinx.metadata.InconsistentKotlinMetadataException;
 import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
+import kotlinx.metadata.jvm.KotlinClassMetadata.SyntheticClass;
 
 public final class KotlinClassMetadataReader {
 
-  private static int KOTLIN_METADATA_KIND_LAMBDA = 3;
-
   public static KotlinClassLevelInfo getKotlinInfo(
       Kotlin kotlin,
       DexClass clazz,
@@ -53,7 +52,7 @@
       DexAnnotation annotation) {
     try {
       KotlinClassMetadata kMetadata = toKotlinClassMetadata(kotlin, annotation.annotation);
-      if (onlyProcessLambda && kMetadata.getHeader().getKind() != KOTLIN_METADATA_KIND_LAMBDA) {
+      if (onlyProcessLambda && !isSyntheticLambda(kMetadata)) {
         return NO_KOTLIN_INFO;
       }
       return createKotlinInfo(kotlin, clazz, kMetadata, factory, reporter, keepByteCode);
@@ -76,6 +75,14 @@
     }
   }
 
+  private static boolean isSyntheticLambda(KotlinClassMetadata kMetadata) {
+    if (kMetadata instanceof SyntheticClass) {
+      SyntheticClass syntheticClass = (SyntheticClass) kMetadata;
+      return syntheticClass.isLambda();
+    }
+    return false;
+  }
+
   public static boolean hasKotlinClassMetadataAnnotation(
       DexClass clazz, DexDefinitionSupplier definitionSupplier) {
     return clazz