Ignore -dontskipnonpubliclibraryclassmembers
This Proguard option is already the default R8 behavior and it seems
very dangerous to change that just for a processing speed up.
Change-Id: If853f3d0d074683aaada4b1d6131ab6be614a232
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 69db32d..7e27fe0 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
@@ -41,7 +41,9 @@
.of("forceprocessing", "dontusemixedcaseclassnames",
"dontpreverify", "experimentalshrinkunusedprotofields",
"filterlibraryjarswithorginalprogramjars",
- "dontskipnonpubliclibraryclasses", "invokebasemethod");
+ "dontskipnonpubliclibraryclasses",
+ "dontskipnonpubliclibraryclassmembers",
+ "invokebasemethod");
private static final List<String> ignoredClassDescriptorOptions = ImmutableList
.of("isclassnamestring",
"alwaysinline", "identifiernamestring", "whyarenotsimple");
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
index 2362028..9fb98ae 100644
--- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
@@ -53,6 +53,8 @@
VALID_PROGUARD_DIR + "dontobfuscate.flags";
private static final String DONT_SKIP_NON_PUBLIC_LIBRARY_CLASSES =
VALID_PROGUARD_DIR + "dontskipnonpubliclibraryclasses.flags";
+ private static final String DONT_SKIP_NON_PUBLIC_LIBRARY_CLASS_MEMBERS =
+ VALID_PROGUARD_DIR + "dontskipnonpubliclibraryclassmembers.flags";
private static final String DONT_OPTIMIZE =
VALID_PROGUARD_DIR + "dontoptimize.flags";
private static final String SKIP_NON_PUBLIC_LIBRARY_CLASSES =
@@ -311,6 +313,13 @@
}
@Test
+ public void parseDontskipnonpubliclibraryclassmembers()
+ throws IOException, ProguardRuleParserException {
+ ProguardConfigurationParser parser = new ProguardConfigurationParser(new DexItemFactory());
+ parser.parse(Paths.get(DONT_SKIP_NON_PUBLIC_LIBRARY_CLASS_MEMBERS));
+ }
+
+ @Test
public void parseDontOptimize()
throws IOException, ProguardRuleParserException {
ProguardConfigurationParser parser = new ProguardConfigurationParser(new DexItemFactory());
diff --git a/src/test/proguard/valid/dontskipnonpubliclibraryclassmembers.flags b/src/test/proguard/valid/dontskipnonpubliclibraryclassmembers.flags
new file mode 100644
index 0000000..1956dbe
--- /dev/null
+++ b/src/test/proguard/valid/dontskipnonpubliclibraryclassmembers.flags
@@ -0,0 +1,5 @@
+# Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+-dontskipnonpubliclibraryclassmembers