Simplify horizontal class merging options logic Currently, the class merger is configured when setting up the D8Command, L8Command and R8Command. This CL simplifies the logic by removing all configuration of the horizontal class merger in D8Command, L8Command and R8Command, and instead moving the decision making into HorizontalClassMergerOptions. Change-Id: Ia895be9e180cdc039281c734d9fc774254d62f5f
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java index 71eab03..2c2aed6 100644 --- a/src/main/java/com/android/tools/r8/D8Command.java +++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -37,7 +37,6 @@ import com.android.tools.r8.utils.InternalGlobalSyntheticsProgramProvider; import com.android.tools.r8.utils.InternalOptions; import com.android.tools.r8.utils.InternalOptions.DesugarState; -import com.android.tools.r8.utils.InternalOptions.HorizontalClassMergerOptions; import com.android.tools.r8.utils.InternalOptions.LineNumberOptimization; import com.android.tools.r8.utils.InternalOptions.MappingComposeOptions; import com.android.tools.r8.utils.ProgramClassCollection; @@ -907,15 +906,6 @@ // Disable global optimizations. internal.disableGlobalOptimizations(); - HorizontalClassMergerOptions horizontalClassMergerOptions = - internal.horizontalClassMergerOptions(); - if (internal.isGeneratingDex()) { - horizontalClassMergerOptions.setRestrictToSynthetics(); - } else { - assert internal.isGeneratingClassFiles(); - horizontalClassMergerOptions.disable(); - } - internal.configureAndroidPlatformBuild(getAndroidPlatformBuild()); internal.getArtProfileOptions().setArtProfilesForRewriting(getArtProfilesForRewriting());
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java index 5fca27d..ebe7388 100644 --- a/src/main/java/com/android/tools/r8/L8Command.java +++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -201,8 +201,6 @@ assert !internal.outline.enabled; assert !internal.enableTreeShakingOfLibraryMethodOverrides; - internal.horizontalClassMergerOptions().disable(); - assert internal.desugarState == DesugarState.ON; assert internal.enableInheritanceClassInDexDistributor; internal.enableInheritanceClassInDexDistributor = false;
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java index d81f53d..376be97 100644 --- a/src/main/java/com/android/tools/r8/R8.java +++ b/src/main/java/com/android/tools/r8/R8.java
@@ -583,7 +583,7 @@ } } - if (options.isClassMergingExtensionRequired()) { + if (options.isClassMergingExtensionRequired(appView)) { finalRuntimeTypeCheckInfoBuilder = new RuntimeTypeCheckInfo.Builder(appView); } Enqueuer enqueuer =
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java index 22a23de..a1229c9 100644 --- a/src/main/java/com/android/tools/r8/R8Command.java +++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -56,7 +56,6 @@ import com.android.tools.r8.utils.ExceptionDiagnostic; import com.android.tools.r8.utils.InternalOptions; import com.android.tools.r8.utils.InternalOptions.DesugarState; -import com.android.tools.r8.utils.InternalOptions.HorizontalClassMergerOptions; import com.android.tools.r8.utils.InternalOptions.LineNumberOptimization; import com.android.tools.r8.utils.InternalOptions.MappingComposeOptions; import com.android.tools.r8.utils.InternalProgramClassProvider; @@ -1480,10 +1479,6 @@ MappingComposeOptions mappingComposeOptions = internal.mappingComposeOptions(); mappingComposeOptions.enableExperimentalMappingComposition = true; - HorizontalClassMergerOptions horizontalClassMergerOptions = - internal.horizontalClassMergerOptions(); - assert internal.isOptimizing() || horizontalClassMergerOptions.isRestrictedToSynthetics(); - assert !internal.enableTreeShakingOfLibraryMethodOverrides; if (!internal.isShrinking()) { @@ -1566,9 +1561,6 @@ // careful when merging a public member 'm' from a class A into another class B, since B could // have a kept subclass, in which case 'm' would leak into the public API. if (internal.isGeneratingClassFiles()) { - if (System.getProperty("com.android.tools.r8.disableHorizontalClassMerging") == null) { - horizontalClassMergerOptions.disable(); - } // R8 CF output does not support desugaring so disable it. internal.desugarState = DesugarState.OFF; // TODO(b/333477035): Since D8 dexing now supports outline/stubbing API calls R8/CF should
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/ClassInstanceFieldsMerger.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/ClassInstanceFieldsMerger.java index 63b26c4..5e7d534 100644 --- a/src/main/java/com/android/tools/r8/horizontalclassmerging/ClassInstanceFieldsMerger.java +++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/ClassInstanceFieldsMerger.java
@@ -40,7 +40,7 @@ return new ClassInstanceFieldsMergerImpl(appView.withClassHierarchy(), lensBuilder, group); } else { assert group.getInstanceFieldMap().isEmpty(); - assert appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(); + assert appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(appView); return new ClassInstanceFieldsMerger() { @Override public void setClassIdField(DexEncodedField classIdField) {
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java index 9603933..6f4ce43 100644 --- a/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java +++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java
@@ -55,7 +55,7 @@ } public static HorizontalClassMerger createForD8ClassMerging(AppView<?> appView) { - assert appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(); + assert appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(appView); return new HorizontalClassMerger(appView); }
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/InstanceInitializerMergerCollection.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/InstanceInitializerMergerCollection.java index 80af5cd..461cd61 100644 --- a/src/main/java/com/android/tools/r8/horizontalclassmerging/InstanceInitializerMergerCollection.java +++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/InstanceInitializerMergerCollection.java
@@ -44,7 +44,7 @@ HorizontalMergeGroup group, HorizontalClassMergerGraphLens.Builder lensBuilder) { if (!appView.hasClassHierarchy()) { - assert appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(); + assert appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(appView); assert verifyNoInstanceInitializers(group); return new InstanceInitializerMergerCollection( Collections.emptyList(), Collections.emptyMap());
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java index 0f1355f..8751b15 100644 --- a/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java +++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/PolicyScheduler.java
@@ -114,7 +114,7 @@ addRequiredSingleClassPolicies(appView, immediateSubtypingInfo, builder); - if (appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics()) { + if (appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(appView)) { assert verifySingleClassPoliciesIrrelevantForMergingSynthetics(appView, builder); } else { AppView<AppInfoWithLiveness> appViewWithLiveness = appView.withLiveness(); @@ -215,7 +215,7 @@ RuntimeTypeCheckInfo runtimeTypeCheckInfo) { ImmutableList.Builder<Policy> builder = ImmutableList.builder(); addRequiredMultiClassPolicies(appView, runtimeTypeCheckInfo, builder); - if (!appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics()) { + if (!appView.options().horizontalClassMergerOptions().isRestrictedToSynthetics(appView)) { AppView<AppInfoWithLiveness> appViewWithLiveness = appView.withLiveness(); addMultiClassPoliciesForMergingNonSyntheticClasses(appViewWithLiveness, builder); }
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/CheckSyntheticClasses.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/CheckSyntheticClasses.java index c9c3569..58753b8 100644 --- a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/CheckSyntheticClasses.java +++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/CheckSyntheticClasses.java
@@ -12,10 +12,12 @@ public class CheckSyntheticClasses extends SingleClassPolicy { + private final AppView<?> appView; private final HorizontalClassMergerOptions options; private final SyntheticItems syntheticItems; public CheckSyntheticClasses(AppView<?> appView) { + this.appView = appView; this.options = appView.options().horizontalClassMergerOptions(); this.syntheticItems = appView.getSyntheticItems(); } @@ -25,7 +27,7 @@ if (!options.isSyntheticMergingEnabled() && syntheticItems.isSyntheticClass(clazz)) { return false; } - if (options.isRestrictedToSynthetics() + if (options.isRestrictedToSynthetics(appView) && !syntheticItems.isSyntheticClassEligibleForMerging(clazz)) { return false; }
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java index 7a1769d..942220a 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -115,6 +115,7 @@ import com.android.tools.r8.utils.internal.AssertionUtils; import com.android.tools.r8.utils.internal.ConsumerUtils; import com.android.tools.r8.utils.internal.ListUtils; +import com.android.tools.r8.utils.internal.OptionalBool; import com.android.tools.r8.utils.internal.QuadConsumer; import com.android.tools.r8.utils.internal.SetUtils; import com.android.tools.r8.utils.internal.StringUtils; @@ -383,7 +384,6 @@ enableTreeShakingOfLibraryMethodOverrides = false; enableInitializedClassesAnalysis = false; callSiteOptimizationOptions.disableOptimization(); - horizontalClassMergerOptions.setRestrictToSynthetics(); verticalClassMergerOptions.disable(); } @@ -1059,10 +1059,10 @@ * If any non-static class merging is enabled, information about types referred to by instanceOf * and check cast instructions needs to be collected. */ - public boolean isClassMergingExtensionRequired() { + public boolean isClassMergingExtensionRequired(AppView<?> appView) { WholeProgramOptimizations wholeProgramOptimizations = WholeProgramOptimizations.ON; return horizontalClassMergerOptions.isEnabled(wholeProgramOptimizations) - && !horizontalClassMergerOptions.isRestrictedToSynthetics(); + && !horizontalClassMergerOptions.isRestrictedToSynthetics(appView); } @Override @@ -2040,9 +2040,9 @@ public class HorizontalClassMergerOptions { - private boolean enable = - !SystemPropertyUtils.parseSystemPropertyOrDefault( - "com.android.tools.r8.disableHorizontalClassMerging", false); + private OptionalBool disable = + SystemPropertyUtils.parseSystemPropertyOrDefault( + "com.android.tools.r8.disableHorizontalClassMerging", OptionalBool.UNKNOWN); private boolean enableClassInitializerDeadlockDetection = true; private boolean enableInterfaceMerging = SystemPropertyUtils.parseSystemPropertyOrDefault( @@ -2051,24 +2051,20 @@ SystemPropertyUtils.parseSystemPropertyOrDefault( "com.android.tools.r8.enableSameFilePolicy", false); private boolean enableSyntheticMerging = true; - private boolean restrictToSynthetics = false; - public void disable() { - enable = false; + // Used in tests to enable horizontal class merging when compiling to class files. + public void enableForTesting() { + disable = OptionalBool.FALSE; } - public void disableSyntheticMerging() { + public void disableForTesting() { + disable = OptionalBool.TRUE; + } + + public void disableSyntheticMergingForTesting() { enableSyntheticMerging = false; } - public void enable() { - enable = true; - } - - public void enableIf(boolean enable) { - this.enable = enable; - } - public int getMaxClassGroupSizeInR8() { return 30; } @@ -2086,7 +2082,12 @@ } public boolean isEnabled(WholeProgramOptimizations wholeProgramOptimizations) { - if (!enable || debug || intermediate) { + if (disable.isTrue() || debug || intermediate) { + return false; + } + // Disable horizontal class merging when compiling to class files, unless it has been + // explicitly enabled or disabled. + if (isGeneratingClassFiles() && disable.isUnknown()) { return false; } if (wholeProgramOptimizations.isOn()) { @@ -2109,8 +2110,8 @@ return enableInterfaceMerging; } - public boolean isRestrictedToSynthetics() { - return restrictToSynthetics || !isOptimizing() || !isShrinking(); + public boolean isRestrictedToSynthetics(AppView<?> appView) { + return !appView.enableWholeProgramOptimizations() || !isOptimizing() || !isShrinking(); } public void setEnableClassInitializerDeadlockDetection() { @@ -2128,10 +2129,6 @@ public void setEnableSameFilePolicy(boolean enableSameFilePolicy) { this.enableSameFilePolicy = enableSameFilePolicy; } - - public void setRestrictToSynthetics() { - restrictToSynthetics = true; - } } public static class OpenClosedInterfacesOptions {
diff --git a/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithClInitOnCCTest.java b/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithClInitOnCCTest.java index ba3a7bd..b3e7208 100644 --- a/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithClInitOnCCTest.java +++ b/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithClInitOnCCTest.java
@@ -31,11 +31,6 @@ .addInnerClasses(getClass()) .setMode(CompilationMode.RELEASE) .setMinApi(parameters) - .addOptionsModification( - options -> { - options.horizontalClassMergerOptions().enable(); - options.horizontalClassMergerOptions().setRestrictToSynthetics(); - }) .run(parameters.getRuntime(), Main.class) .assertSuccessWithOutputLines("0", "1"); }
diff --git a/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithCompanionClassesTest.java b/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithCompanionClassesTest.java index 7a8d50c..29e7abe 100644 --- a/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithCompanionClassesTest.java +++ b/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingInD8WithCompanionClassesTest.java
@@ -46,11 +46,6 @@ .addInnerClasses(getClass()) .setMode(CompilationMode.RELEASE) .setMinApi(parameters) - .addOptionsModification( - options -> { - options.horizontalClassMergerOptions().enable(); - options.horizontalClassMergerOptions().setRestrictToSynthetics(); - }) .run(parameters.getRuntime(), Main.class) .assertSuccessWithOutputLines("I::foo", "J::bar") .inspect(
diff --git a/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingOfInitArgumentTypesTest.java b/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingOfInitArgumentTypesTest.java index 2212c6b..ce77962 100644 --- a/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingOfInitArgumentTypesTest.java +++ b/src/test/java/com/android/tools/r8/classmerging/horizontal/HorizontalClassMergingOfInitArgumentTypesTest.java
@@ -47,7 +47,9 @@ options .callSiteOptimizationOptions() .setForceSyntheticsForInstanceInitializers(true); - options.horizontalClassMergerOptions().enableIf(enableHorizontalClassMerging); + if (!enableHorizontalClassMerging) { + options.horizontalClassMergerOptions().disableForTesting(); + } }) .collectSyntheticItems() .enableInliningAnnotations()
diff --git a/src/test/java/com/android/tools/r8/compose/UnusedComposeLambdaTest.java b/src/test/java/com/android/tools/r8/compose/UnusedComposeLambdaTest.java index 302d457..fd0e5e1 100644 --- a/src/test/java/com/android/tools/r8/compose/UnusedComposeLambdaTest.java +++ b/src/test/java/com/android/tools/r8/compose/UnusedComposeLambdaTest.java
@@ -31,7 +31,8 @@ public void testR8() throws Exception { testForR8(parameters) .addInnerClasses(getClass()) - .addOptionsModification(options -> options.horizontalClassMergerOptions().disable()) + .addOptionsModification( + options -> options.horizontalClassMergerOptions().disableForTesting()) .addKeepMainRule(TestClass.class) .compile() .inspect(
diff --git a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureEnclosingTest.java b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureEnclosingTest.java index 58b3c0b..822876d 100644 --- a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureEnclosingTest.java +++ b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureEnclosingTest.java
@@ -14,9 +14,9 @@ import com.android.tools.r8.TestParameters; import com.android.tools.r8.graph.genericsignature.GenericSignatureEnclosingTest.Bar.Inner; import com.android.tools.r8.graph.genericsignature.GenericSignatureEnclosingTest.Bar.SubInner; -import com.android.tools.r8.utils.internal.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; import com.android.tools.r8.utils.codeinspector.CodeInspector; +import com.android.tools.r8.utils.internal.BooleanUtils; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -52,7 +52,7 @@ .setMinApi(parameters) .addOptionsModification( options -> { - options.horizontalClassMergerOptions().disable(); + options.horizontalClassMergerOptions().disableForTesting(); }) .run(parameters.getRuntime(), Main.class) .assertSuccessWithOutputLines(
diff --git a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterRecursiveTest.java b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterRecursiveTest.java index 109278b..0e49704 100644 --- a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterRecursiveTest.java +++ b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterRecursiveTest.java
@@ -10,9 +10,9 @@ import com.android.tools.r8.TestBase; import com.android.tools.r8.TestParameters; -import com.android.tools.r8.utils.internal.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; import com.android.tools.r8.utils.codeinspector.CodeInspector; +import com.android.tools.r8.utils.internal.BooleanUtils; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -45,7 +45,8 @@ .addKeepAttributeSignature() .addKeepAttributeInnerClassesAndEnclosingMethod() .setMinApi(parameters) - .addOptionsModification(options -> options.horizontalClassMergerOptions().disable()) + .addOptionsModification( + options -> options.horizontalClassMergerOptions().disableForTesting()) .run(parameters.getRuntime(), Main.class) .assertSuccessWithOutputLines("Bar::enclosingMethod") .inspect(this::checkSignatures);
diff --git a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterTest.java b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterTest.java index 964c833..3728350 100644 --- a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterTest.java +++ b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignaturePrunedOuterTest.java
@@ -10,9 +10,9 @@ import com.android.tools.r8.TestBase; import com.android.tools.r8.TestParameters; -import com.android.tools.r8.utils.internal.BooleanUtils; import com.android.tools.r8.utils.codeinspector.ClassSubject; import com.android.tools.r8.utils.codeinspector.CodeInspector; +import com.android.tools.r8.utils.internal.BooleanUtils; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -45,7 +45,8 @@ .addKeepAttributeSignature() .addKeepAttributeInnerClassesAndEnclosingMethod() .setMinApi(parameters) - .addOptionsModification(options -> options.horizontalClassMergerOptions().disable()) + .addOptionsModification( + options -> options.horizontalClassMergerOptions().disableForTesting()) .run(parameters.getRuntime(), Main.class) .assertSuccessWithOutputLines( "Bar::enclosingMethod", "Hello World", "Bar::enclosingMethod2", "Hello World")
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java index 9ea32b6..1c42658 100644 --- a/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java +++ b/src/test/java/com/android/tools/r8/keepanno/KeepTypePatternWithInstanceOfTest.java
@@ -76,7 +76,7 @@ private void clearClassMerging(TestShrinkerBuilder<?, ?, ?, ?, ?> sb) { sb.addOptionsModification( opt -> { - opt.horizontalClassMergerOptions().disable(); + opt.horizontalClassMergerOptions().disableForTesting(); opt.getVerticalClassMergerOptions().disable(); }); }
diff --git a/src/test/java8/shaking/com/android/tools/r8/shaking/assumenosideeffects/AssumenosideeffectsPropagationTest.java b/src/test/java8/shaking/com/android/tools/r8/shaking/assumenosideeffects/AssumenosideeffectsPropagationTest.java index 5e85041..e0d8781 100644 --- a/src/test/java8/shaking/com/android/tools/r8/shaking/assumenosideeffects/AssumenosideeffectsPropagationTest.java +++ b/src/test/java8/shaking/com/android/tools/r8/shaking/assumenosideeffects/AssumenosideeffectsPropagationTest.java
@@ -152,8 +152,11 @@ .addKeepMainRule(MAIN) .addKeepRules(config.getKeepRules()) .addOptionsModification( - options -> - options.horizontalClassMergerOptions().enableIf(enableHorizontalClassMerging)) + options -> { + if (!enableHorizontalClassMerging) { + options.horizontalClassMergerOptions().disableForTesting(); + } + }) .enableInliningAnnotations() .addDontObfuscate() .setMinApi(parameters)
diff --git a/src/test/testbase/java/com/android/tools/r8/D8TestBuilder.java b/src/test/testbase/java/com/android/tools/r8/D8TestBuilder.java index 2000829..518a1f7 100644 --- a/src/test/testbase/java/com/android/tools/r8/D8TestBuilder.java +++ b/src/test/testbase/java/com/android/tools/r8/D8TestBuilder.java
@@ -194,7 +194,7 @@ public D8TestBuilder noHorizontalClassMergingOfSynthetics() { return addOptionsModification( - options -> options.horizontalClassMergerOptions().disableSyntheticMerging()); + options -> options.horizontalClassMergerOptions().disableSyntheticMergingForTesting()); } public D8TestBuilder collectBuildMetadata() {
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 fc1aaad..d9fd929 100644 --- a/src/test/testbase/java/com/android/tools/r8/R8TestBuilder.java +++ b/src/test/testbase/java/com/android/tools/r8/R8TestBuilder.java
@@ -638,7 +638,7 @@ public T noHorizontalClassMergingOfSynthetics() { return addOptionsModification( - options -> options.horizontalClassMergerOptions().disableSyntheticMerging()); + options -> options.horizontalClassMergerOptions().disableSyntheticMergingForTesting()); } public T noInliningOfSynthetics() {
diff --git a/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java index 6390c7a..6ff2f41 100644 --- a/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java +++ b/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -90,7 +90,7 @@ options.testing.enableRepackagingByDefault = true; options.testing.enableRepackagingByDefaultForCf = true; options.testing.forcePruneMetaInfManifestMf = true; - options.horizontalClassMergerOptions().enable(); + options.horizontalClassMergerOptions().enableForTesting(); options.horizontalClassMergerOptions().setEnableInterfaceMerging(); options .getCfCodeAnalysisOptions()