Rename methods to control legacy full mode behavior in compiler API
Change-Id: Ia1714525ec110059f0489f7f55cc242a2f4f1158
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java
index 0bd58e6..1372ccb 100644
--- a/src/main/java/com/android/tools/r8/L8Command.java
+++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -387,7 +387,7 @@
R8Command.Builder r8Builder =
R8Command.builder(getReporter())
.addProgramResourceProvider((ProgramResourceProvider) l8CfConsumer)
- .setEnableEmptyMemberRulesToDefaultInitRuleConversion(false)
+ .enableLegacyFullModeForKeepRules(false)
.setSynthesizedClassesPrefix(
desugaredLibrarySpecification.getSynthesizedLibraryClassesPackagePrefix())
.setMinApiLevel(getMinApiLevel())
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 52ae388..489f9e0 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -506,10 +506,15 @@
*
* <p>This currently defaults to true in stable versions.
*/
- public Builder setEnableEmptyMemberRulesToDefaultInitRuleConversion(
- boolean enableEmptyMemberRulesToDefaultInitRuleConversion) {
- parserOptionsBuilder.setEnableEmptyMemberRulesToDefaultInitRuleConversion(
- enableEmptyMemberRulesToDefaultInitRuleConversion);
+ public Builder enableLegacyFullModeForKeepRules(boolean enableLegacyFullModeForKeepRules) {
+ parserOptionsBuilder.setEnableLegacyFullModeForKeepRules(enableLegacyFullModeForKeepRules);
+ return this;
+ }
+
+ public Builder enableLegacyFullModeForKeepRulesWarnings(
+ boolean enableLegacyFullModeForKeepRulesWarnings) {
+ parserOptionsBuilder.setEnableLegacyFullModeForKeepRulesWarnings(
+ enableLegacyFullModeForKeepRulesWarnings);
return this;
}
diff --git a/src/main/java/com/android/tools/r8/R8Partial.java b/src/main/java/com/android/tools/r8/R8Partial.java
index 42b5b5b..2fc67d4 100644
--- a/src/main/java/com/android/tools/r8/R8Partial.java
+++ b/src/main/java/com/android/tools/r8/R8Partial.java
@@ -220,7 +220,7 @@
.addClasspathFiles(d8Program)
.addProgramFiles(r8Program)
.addProguardConfigurationFiles(dump.getProguardConfigFile(), traceReferencesRules)
- .setEnableEmptyMemberRulesToDefaultInitRuleConversion(true)
+ .enableLegacyFullModeForKeepRules(true)
.setMode(dump.getBuildProperties().getCompilationMode())
.setOutput(r8Output, OutputMode.DexIndexed);
if (dump.hasDesugaredLibrary()) {
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 ceb9671..8c6aa57 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
@@ -129,7 +129,7 @@
dexItemFactory,
reporter,
ProguardConfigurationParserOptions.builder()
- .setEnableEmptyMemberRulesToDefaultInitRuleConversion(false)
+ .setEnableLegacyFullModeForKeepRules(false)
.setEnableExperimentalCheckEnumUnboxed(false)
.setEnableExperimentalConvertCheckNotNull(false)
.setEnableExperimentalWhyAreYouNotInlining(false)
@@ -852,13 +852,12 @@
Position end = getPosition();
ProguardKeepRule rule =
keepRuleBuilder.setSource(getSourceSnippet(contents, start, end)).setEnd(end).build();
- if (options.isEmptyMemberRulesToDefaultInitRuleConversionEnabled(configurationBuilder)
+ if (options.isLegacyFullModeForKeepRulesEnabled(configurationBuilder)
&& rule.getMemberRules().isEmpty()
&& rule.getType() != ProguardKeepRuleType.KEEP_CLASSES_WITH_MEMBERS) {
// If there are no member rules, a default rule for the parameterless constructor applies
// in compatibility mode.
- if (options.isEmptyMemberRulesToDefaultInitRuleConversionWarningsEnabled(
- configurationBuilder)) {
+ if (options.isLegacyFullModeForKeepRulesWarningsEnabled(configurationBuilder)) {
reporter.warning(
EmptyMemberRulesToDefaultInitRuleConversionDiagnostic.Factory.create(rule));
}
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 02373b6..ab5db09 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserOptions.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParserOptions.java
@@ -6,20 +6,18 @@
import static com.android.tools.r8.utils.SystemPropertyUtils.parseSystemPropertyOrDefault;
-import com.android.tools.r8.utils.OptionalBool;
-
public class ProguardConfigurationParserOptions {
- private final OptionalBool enableEmptyMemberRulesToDefaultInitRuleConversion;
- private final boolean enableEmptyMemberRulesToDefaultInitRuleConversionWarnings;
+ private final boolean enableLegacyFullModeForKeepRules;
+ private final boolean enableLegacyFullModeForKeepRulesWarnings;
private final boolean enableExperimentalCheckEnumUnboxed;
private final boolean enableExperimentalConvertCheckNotNull;
private final boolean enableExperimentalWhyAreYouNotInlining;
private final boolean enableTestingOptions;
ProguardConfigurationParserOptions(
- OptionalBool enableEmptyMemberRulesToDefaultInitRuleConversion,
- boolean enableEmptyMemberRulesToDefaultInitRuleConversionWarnings,
+ boolean enableLegacyFullModeForKeepRules,
+ boolean enableLegacyFullModeForKeepRulesWarnings,
boolean enableExperimentalCheckEnumUnboxed,
boolean enableExperimentalConvertCheckNotNull,
boolean enableExperimentalWhyAreYouNotInlining,
@@ -28,28 +26,25 @@
this.enableExperimentalConvertCheckNotNull = enableExperimentalConvertCheckNotNull;
this.enableExperimentalWhyAreYouNotInlining = enableExperimentalWhyAreYouNotInlining;
this.enableTestingOptions = enableTestingOptions;
- this.enableEmptyMemberRulesToDefaultInitRuleConversion =
- enableEmptyMemberRulesToDefaultInitRuleConversion;
- this.enableEmptyMemberRulesToDefaultInitRuleConversionWarnings =
- enableEmptyMemberRulesToDefaultInitRuleConversionWarnings;
+ this.enableLegacyFullModeForKeepRules = enableLegacyFullModeForKeepRules;
+ this.enableLegacyFullModeForKeepRulesWarnings = enableLegacyFullModeForKeepRulesWarnings;
}
public static Builder builder() {
return new Builder();
}
- public boolean isEmptyMemberRulesToDefaultInitRuleConversionEnabled(
+ public boolean isLegacyFullModeForKeepRulesEnabled(
ProguardConfiguration.Builder configurationBuilder) {
// TODO(b/356344563): Disable in full mode in the next major version.
- return configurationBuilder.isForceProguardCompatibility()
- || enableEmptyMemberRulesToDefaultInitRuleConversion.getOrDefault(true);
+ return configurationBuilder.isForceProguardCompatibility() || enableLegacyFullModeForKeepRules;
}
- public boolean isEmptyMemberRulesToDefaultInitRuleConversionWarningsEnabled(
+ public boolean isLegacyFullModeForKeepRulesWarningsEnabled(
ProguardConfiguration.Builder configurationBuilder) {
- assert isEmptyMemberRulesToDefaultInitRuleConversionEnabled(configurationBuilder);
+ assert isLegacyFullModeForKeepRulesEnabled(configurationBuilder);
return !configurationBuilder.isForceProguardCompatibility()
- && enableEmptyMemberRulesToDefaultInitRuleConversionWarnings;
+ && enableLegacyFullModeForKeepRulesWarnings;
}
public boolean isExperimentalCheckEnumUnboxedEnabled() {
@@ -70,22 +65,20 @@
public static class Builder {
- private OptionalBool enableEmptyMemberRulesToDefaultInitRuleConversion = OptionalBool.UNKNOWN;
- private boolean enableEmptyMemberRulesToDefaultInitRuleConversionWarnings = false;
+ private boolean enableLegacyFullModeForKeepRules = true;
+ private boolean enableLegacyFullModeForKeepRulesWarnings = false;
private boolean enableExperimentalCheckEnumUnboxed;
private boolean enableExperimentalConvertCheckNotNull;
private boolean enableExperimentalWhyAreYouNotInlining;
private boolean enableTestingOptions;
public Builder readEnvironment() {
- enableEmptyMemberRulesToDefaultInitRuleConversion =
+ enableLegacyFullModeForKeepRules =
parseSystemPropertyOrDefault(
- "com.android.tools.r8.enableEmptyMemberRulesToDefaultInitRuleConversion",
- OptionalBool.UNKNOWN);
- enableEmptyMemberRulesToDefaultInitRuleConversionWarnings =
+ "com.android.tools.r8.enableLegacyFullModeForKeepRules", true);
+ enableLegacyFullModeForKeepRulesWarnings =
parseSystemPropertyOrDefault(
- "com.android.tools.r8.enableEmptyMemberRulesToDefaultInitRuleConversionWarnings",
- false);
+ "com.android.tools.r8.enableLegacyFullModeForKeepRulesWarnings", false);
enableExperimentalCheckEnumUnboxed =
parseSystemPropertyOrDefault(
"com.android.tools.r8.experimental.enablecheckenumunboxed", false);
@@ -100,10 +93,14 @@
return this;
}
- public Builder setEnableEmptyMemberRulesToDefaultInitRuleConversion(
- boolean enableEmptyMemberRulesToDefaultInitRuleConversion) {
- this.enableEmptyMemberRulesToDefaultInitRuleConversion =
- OptionalBool.of(enableEmptyMemberRulesToDefaultInitRuleConversion);
+ public Builder setEnableLegacyFullModeForKeepRules(boolean enableLegacyFullModeForKeepRules) {
+ this.enableLegacyFullModeForKeepRules = enableLegacyFullModeForKeepRules;
+ return this;
+ }
+
+ public Builder setEnableLegacyFullModeForKeepRulesWarnings(
+ boolean enableLegacyFullModeForKeepRulesWarnings) {
+ this.enableLegacyFullModeForKeepRulesWarnings = enableLegacyFullModeForKeepRulesWarnings;
return this;
}
@@ -132,8 +129,8 @@
public ProguardConfigurationParserOptions build() {
return new ProguardConfigurationParserOptions(
- enableEmptyMemberRulesToDefaultInitRuleConversion,
- enableEmptyMemberRulesToDefaultInitRuleConversionWarnings,
+ enableLegacyFullModeForKeepRules,
+ enableLegacyFullModeForKeepRulesWarnings,
enableExperimentalCheckEnumUnboxed,
enableExperimentalConvertCheckNotNull,
enableExperimentalWhyAreYouNotInlining,
diff --git a/src/test/java/com/android/tools/r8/compilerapi/diagnostics/ProguardKeepRuleDiagnosticsApiTest.java b/src/test/java/com/android/tools/r8/compilerapi/diagnostics/ProguardKeepRuleDiagnosticsApiTest.java
index e4ed3bb..cb50996 100644
--- a/src/test/java/com/android/tools/r8/compilerapi/diagnostics/ProguardKeepRuleDiagnosticsApiTest.java
+++ b/src/test/java/com/android/tools/r8/compilerapi/diagnostics/ProguardKeepRuleDiagnosticsApiTest.java
@@ -98,7 +98,7 @@
.addProguardConfiguration(
Collections.singletonList("-keep class NotPresent {}"), Origin.unknown())
.addLibraryFiles(getJava8RuntimeJar())
- .setEnableEmptyMemberRulesToDefaultInitRuleConversion(false)
+ .enableLegacyFullModeForKeepRules(false)
.setProgramConsumer(DexIndexedConsumer.emptyConsumer())
.setMinApiLevel(1)
.build());
diff --git a/src/test/testbase/java/com/android/tools/r8/R8TestBuilder.java b/src/test/testbase/java/com/android/tools/r8/R8TestBuilder.java
index 72fd0ae..51174be 100644
--- a/src/test/testbase/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/R8TestBuilder.java
@@ -153,7 +153,7 @@
libraryDesugaringTestConfiguration.configure(builder);
builder.setAndroidPlatformBuild(androidPlatformBuild);
if (!enableEmptyMemberRulesToDefaultInitRuleConversion.isUnknown()) {
- builder.setEnableEmptyMemberRulesToDefaultInitRuleConversion(
+ builder.enableLegacyFullModeForKeepRules(
enableEmptyMemberRulesToDefaultInitRuleConversion.toBoolean());
}
builder.setEnableIsolatedSplits(enableIsolatedSplits);
diff --git a/third_party/binary_compatibility_tests/compiler_api_tests.tar.gz.sha1 b/third_party/binary_compatibility_tests/compiler_api_tests.tar.gz.sha1
index b76801c..089244c 100644
--- a/third_party/binary_compatibility_tests/compiler_api_tests.tar.gz.sha1
+++ b/third_party/binary_compatibility_tests/compiler_api_tests.tar.gz.sha1
@@ -1 +1 @@
-9c8c027ae1cd5b8768574a7fb2bb0698ef09b907
\ No newline at end of file
+aa0b23115292ec22a24d4166101c1116d264e1cb
\ No newline at end of file