Passthrough misc. rules with no args in rule filtering

Change-Id: I2a5ee2f50518e2b8ca0ac7ee7eca683ff8315c7b
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/FilteredKeepRulesBuilder.java b/src/main/java/com/android/tools/r8/processkeeprules/FilteredKeepRulesBuilder.java
index 0f39f6d..5a7210b 100644
--- a/src/main/java/com/android/tools/r8/processkeeprules/FilteredKeepRulesBuilder.java
+++ b/src/main/java/com/android/tools/r8/processkeeprules/FilteredKeepRulesBuilder.java
@@ -118,6 +118,13 @@
   }
 
   @Override
+  public void enableAllowAccessModification(
+      ProguardConfigurationSourceParser parser, Position position, TextPosition positionStart) {
+    ensureNewlineAfterComment();
+    write(parser, positionStart);
+  }
+
+  @Override
   public void enableKeepDirectories(
       ProguardPathList keepDirectoryPatterns,
       ProguardConfigurationSourceParser parser,
@@ -167,6 +174,20 @@
   }
 
   @Override
+  public void enableProtoShrinking(
+      ProguardConfigurationSourceParser parser, TextPosition positionStart) {
+    ensureNewlineAfterComment();
+    write(parser, positionStart);
+  }
+
+  @Override
+  public void setIgnoreWarnings(
+      ProguardConfigurationSourceParser parser, TextPosition positionStart) {
+    ensureNewlineAfterComment();
+    write(parser, positionStart);
+  }
+
+  @Override
   public void setRenameSourceFileAttribute(
       String s,
       ProguardConfigurationSourceParser parser,
@@ -186,22 +207,12 @@
   public void addParsedConfiguration(String s) {}
 
   @Override
-  public void enableProtoShrinking() {}
-
-  @Override
-  public void setIgnoreWarnings() {}
-
-  @Override
   public void addDontWarnPattern(ProguardClassNameList pattern) {}
 
   @Override
   public void addDontNotePattern(ProguardClassNameList pattern) {}
 
   @Override
-  public void enableAllowAccessModification(
-      ProguardConfigurationSourceParser parser, Position position) {}
-
-  @Override
   public void setApplyMappingFile(
       Path path, ProguardConfigurationSourceParser parser, Position position) {}
 
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/ValidateLibraryConsumerRulesKeepRuleProcessor.java b/src/main/java/com/android/tools/r8/processkeeprules/ValidateLibraryConsumerRulesKeepRuleProcessor.java
index b0ae0b9..f02a248 100644
--- a/src/main/java/com/android/tools/r8/processkeeprules/ValidateLibraryConsumerRulesKeepRuleProcessor.java
+++ b/src/main/java/com/android/tools/r8/processkeeprules/ValidateLibraryConsumerRulesKeepRuleProcessor.java
@@ -64,7 +64,7 @@
 
   @Override
   public void enableAllowAccessModification(
-      ProguardConfigurationSourceParser parser, Position position) {
+      ProguardConfigurationSourceParser parser, Position position, TextPosition positionStart) {
     handleGlobalRule(parser, position, "-allowaccessmodification");
   }
 
@@ -123,10 +123,12 @@
       TextPosition positionStart) {}
 
   @Override
-  public void enableProtoShrinking() {}
+  public void enableProtoShrinking(
+      ProguardConfigurationSourceParser parser, TextPosition positionStart) {}
 
   @Override
-  public void setIgnoreWarnings() {}
+  public void setIgnoreWarnings(
+      ProguardConfigurationSourceParser parser, TextPosition positionStart) {}
 
   @Override
   public void addDontWarnPattern(ProguardClassNameList pattern) {}
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
index 71425c2..e8b2089 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
@@ -104,12 +104,13 @@
 
     @Override
     public void enableAllowAccessModification(
-        ProguardConfigurationSourceParser parser, Position position) {
+        ProguardConfigurationSourceParser parser, Position position, TextPosition positionStart) {
       this.allowAccessModification = true;
     }
 
     @Override
-    public void setIgnoreWarnings() {
+    public void setIgnoreWarnings(
+        ProguardConfigurationSourceParser parser, TextPosition positionStart) {
       this.ignoreWarnings = true;
     }
 
@@ -356,7 +357,8 @@
     }
 
     @Override
-    public void enableProtoShrinking() {
+    public void enableProtoShrinking(
+        ProguardConfigurationSourceParser parser, TextPosition positionStart) {
       protoShrinking = true;
     }
 
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
index a82e13a..97dc3b3 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
@@ -351,9 +351,9 @@
         configurationConsumer.enablePrintUsage(
             parseOptionalFileName(), this, getPosition(optionStart), optionStart);
       } else if (acceptString("shrinkunusedprotofields")) {
-        configurationConsumer.enableProtoShrinking();
+        configurationConsumer.enableProtoShrinking(this, optionStart);
       } else if (acceptString("ignorewarnings")) {
-        configurationConsumer.setIgnoreWarnings();
+        configurationConsumer.setIgnoreWarnings(this, optionStart);
       } else if (acceptString("dontwarn")) {
         parseClassFilter(configurationConsumer::addDontWarnPattern);
       } else if (acceptString("dontnote")) {
@@ -398,7 +398,8 @@
           configurationConsumer.enableFlattenPackageHierarchy(this, getPosition(optionStart));
         }
       } else if (acceptString("allowaccessmodification")) {
-        configurationConsumer.enableAllowAccessModification(this, getPosition(optionStart));
+        configurationConsumer.enableAllowAccessModification(
+            this, getPosition(optionStart), optionStart);
       } else if (acceptString("printconfiguration")) {
         skipWhitespace();
         configurationConsumer.enablePrintConfiguration(
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserConsumer.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserConsumer.java
index 5813108..c5ad0d6 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserConsumer.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserConsumer.java
@@ -67,15 +67,16 @@
 
   void disableShrinking(ProguardConfigurationSourceParser parser, Position position);
 
-  void enableProtoShrinking();
+  void enableProtoShrinking(ProguardConfigurationSourceParser parser, TextPosition positionStart);
 
-  void setIgnoreWarnings();
+  void setIgnoreWarnings(ProguardConfigurationSourceParser parser, TextPosition positionStart);
 
   void addDontWarnPattern(ProguardClassNameList pattern);
 
   void addDontNotePattern(ProguardClassNameList pattern);
 
-  void enableAllowAccessModification(ProguardConfigurationSourceParser parser, Position position);
+  void enableAllowAccessModification(
+      ProguardConfigurationSourceParser parser, Position position, TextPosition positionStart);
 
   void setApplyMappingFile(Path path, ProguardConfigurationSourceParser parser, Position position);
 
diff --git a/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java b/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java
index 3d90eab..66362ce 100644
--- a/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java
+++ b/src/test/java/com/android/tools/r8/internal/CompilationTestBase.java
@@ -121,7 +121,7 @@
           builder,
           pgConfig -> {
             pgConfig.enablePrintSeeds(null, null, null, null);
-            pgConfig.setIgnoreWarnings();
+            pgConfig.setIgnoreWarnings(null, null);
           });
       outputApp = new AndroidAppConsumers(builder);
       ToolHelper.runR8(builder.build(), optionsConsumer);