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);