Disable warnings for implicitly kept default constructors

Fixes: b/372749733
Change-Id: I2e1ef97658dbf09fd2b2f1491d680a84c42bf49b
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserOptions.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserOptions.java
index 07bea60..02373b6 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserOptions.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserOptions.java
@@ -11,6 +11,7 @@
 public class ProguardConfigurationParserOptions {
 
   private final OptionalBool enableEmptyMemberRulesToDefaultInitRuleConversion;
+  private final boolean enableEmptyMemberRulesToDefaultInitRuleConversionWarnings;
   private final boolean enableExperimentalCheckEnumUnboxed;
   private final boolean enableExperimentalConvertCheckNotNull;
   private final boolean enableExperimentalWhyAreYouNotInlining;
@@ -18,6 +19,7 @@
 
   ProguardConfigurationParserOptions(
       OptionalBool enableEmptyMemberRulesToDefaultInitRuleConversion,
+      boolean enableEmptyMemberRulesToDefaultInitRuleConversionWarnings,
       boolean enableExperimentalCheckEnumUnboxed,
       boolean enableExperimentalConvertCheckNotNull,
       boolean enableExperimentalWhyAreYouNotInlining,
@@ -28,6 +30,8 @@
     this.enableTestingOptions = enableTestingOptions;
     this.enableEmptyMemberRulesToDefaultInitRuleConversion =
         enableEmptyMemberRulesToDefaultInitRuleConversion;
+    this.enableEmptyMemberRulesToDefaultInitRuleConversionWarnings =
+        enableEmptyMemberRulesToDefaultInitRuleConversionWarnings;
   }
 
   public static Builder builder() {
@@ -45,7 +49,7 @@
       ProguardConfiguration.Builder configurationBuilder) {
     assert isEmptyMemberRulesToDefaultInitRuleConversionEnabled(configurationBuilder);
     return !configurationBuilder.isForceProguardCompatibility()
-        && enableEmptyMemberRulesToDefaultInitRuleConversion.isUnknown();
+        && enableEmptyMemberRulesToDefaultInitRuleConversionWarnings;
   }
 
   public boolean isExperimentalCheckEnumUnboxedEnabled() {
@@ -67,6 +71,7 @@
   public static class Builder {
 
     private OptionalBool enableEmptyMemberRulesToDefaultInitRuleConversion = OptionalBool.UNKNOWN;
+    private boolean enableEmptyMemberRulesToDefaultInitRuleConversionWarnings = false;
     private boolean enableExperimentalCheckEnumUnboxed;
     private boolean enableExperimentalConvertCheckNotNull;
     private boolean enableExperimentalWhyAreYouNotInlining;
@@ -77,6 +82,10 @@
           parseSystemPropertyOrDefault(
               "com.android.tools.r8.enableEmptyMemberRulesToDefaultInitRuleConversion",
               OptionalBool.UNKNOWN);
+      enableEmptyMemberRulesToDefaultInitRuleConversionWarnings =
+          parseSystemPropertyOrDefault(
+              "com.android.tools.r8.enableEmptyMemberRulesToDefaultInitRuleConversionWarnings",
+              false);
       enableExperimentalCheckEnumUnboxed =
           parseSystemPropertyOrDefault(
               "com.android.tools.r8.experimental.enablecheckenumunboxed", false);
@@ -124,6 +133,7 @@
     public ProguardConfigurationParserOptions build() {
       return new ProguardConfigurationParserOptions(
           enableEmptyMemberRulesToDefaultInitRuleConversion,
+          enableEmptyMemberRulesToDefaultInitRuleConversionWarnings,
           enableExperimentalCheckEnumUnboxed,
           enableExperimentalConvertCheckNotNull,
           enableExperimentalWhyAreYouNotInlining,
diff --git a/src/test/java/com/android/tools/r8/shaking/EmptyMemberRulesToDefaultInitRuleConversionTest.java b/src/test/java/com/android/tools/r8/shaking/EmptyMemberRulesToDefaultInitRuleConversionTest.java
index 564eac9..22a5d8a 100644
--- a/src/test/java/com/android/tools/r8/shaking/EmptyMemberRulesToDefaultInitRuleConversionTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/EmptyMemberRulesToDefaultInitRuleConversionTest.java
@@ -3,12 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.shaking;
 
-import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
-import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentIf;
-import static org.hamcrest.CoreMatchers.allOf;
-import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assume.assumeTrue;
 
@@ -17,9 +13,7 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.ThrowableConsumer;
-import com.android.tools.r8.errors.EmptyMemberRulesToDefaultInitRuleConversionDiagnostic;
 import com.android.tools.r8.utils.BooleanUtils;
-import com.android.tools.r8.utils.StringUtils;
 import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -74,28 +68,9 @@
     testForR8(parameters.getBackend())
         .addInnerClasses(getClass())
         .addKeepClassRules(Main.class)
-        .allowDiagnosticWarningMessages()
         .clearEnableEmptyMemberRulesToDefaultInitRuleConversion()
         .setMinApi(parameters)
-        .compileWithExpectedDiagnostics(
-            diagnostics ->
-                diagnostics
-                    .assertOnlyWarnings()
-                    .assertWarningsMatch(
-                        allOf(
-                            diagnosticType(
-                                EmptyMemberRulesToDefaultInitRuleConversionDiagnostic.class),
-                            diagnosticMessage(
-                                equalTo(
-                                    StringUtils.joinLines(
-                                        "The current version of R8 implicitly keeps the default"
-                                            + " constructor for Proguard configuration rules that"
-                                            + " have no member pattern. If the following rule"
-                                            + " should continue to keep the default constructor in"
-                                            + " the next major version of R8, then it must be"
-                                            + " augmented with the member pattern `{ void <init>();"
-                                            + " }` to explicitly keep the default constructor:",
-                                        "-keep class " + Main.class.getTypeName()))))))
+        .compile()
         .inspect(inspector -> assertThat(inspector.clazz(Main.class).init(), isPresent()));
   }