Respect -dontnote in lambda merger

Bug: 177337814
Change-Id: If49b11068b0d6ea5d1875d4e1b85a1badb798f05
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java b/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
index 3bb366d..4f5ca5d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
@@ -48,6 +48,7 @@
 import com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory;
 import com.android.tools.r8.kotlin.Kotlin;
 import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.shaking.ProguardConfiguration;
 import com.android.tools.r8.utils.SetUtils;
 import com.android.tools.r8.utils.StringDiagnostic;
 import com.android.tools.r8.utils.ThreadUtils;
@@ -399,20 +400,30 @@
     for (LambdaGroup group : groups.values()) {
       ThrowingConsumer<DexClass, LambdaStructureError> validator =
           group.lambdaClassValidator(kotlin, appView.appInfo());
-      group.forEachLambda(info ->
-          futures.add(service.submit(() -> {
-            try {
-              validator.accept(info.clazz);
-            } catch (LambdaStructureError error) {
-              if (error.reportable) {
-                reporter.info(
-                    new StringDiagnostic("Unexpected Kotlin lambda structure [" +
-                        info.clazz.type.toSourceString() + "]: " + error.getMessage())
-                );
-              }
-              invalidateLambda(info.clazz.type);
-            }
-          })));
+      group.forEachLambda(
+          info ->
+              futures.add(
+                  service.submit(
+                      () -> {
+                        try {
+                          validator.accept(info.clazz);
+                        } catch (LambdaStructureError error) {
+                          ProguardConfiguration proguardConfiguration =
+                              appView.options().getProguardConfiguration();
+                          if (error.reportable
+                              && !proguardConfiguration
+                                  .getDontNotePatterns()
+                                  .matches(info.clazz.getType())) {
+                            reporter.info(
+                                new StringDiagnostic(
+                                    "Unexpected Kotlin lambda structure ["
+                                        + info.clazz.type.toSourceString()
+                                        + "]: "
+                                        + error.getMessage()));
+                          }
+                          invalidateLambda(info.clazz.type);
+                        }
+                      })));
     }
     ThreadUtils.awaitFutures(futures);
   }