Remove support for -overloadaggressively
Fixes: b/221174453
RELNOTES: Removed support for keep flag -overloadaggressively.
The flag remains a valid flag and will be parsed by R8. If present, R8
will silently ignore it and continue compilation as if it was not set.
Previously compiling with -overloadaggressively would result in larger
output size as more line information is needed to ensure that stacks can
be retraced correctly.
Change-Id: Idd4f5fd4afb6cca21dd2845e5d6573c197613c5c
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 d175b29..99edc77 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
@@ -66,7 +66,6 @@
private final ProguardPathFilter.Builder keepDirectories =
ProguardPathFilter.builder().disable();
private boolean forceProguardCompatibility = false;
- private boolean overloadAggressively;
private boolean configurationDebugging = false;
private boolean dontUseMixedCaseClassnames = false;
private boolean protoShrinking = false;
@@ -225,10 +224,6 @@
this.packageObfuscationDictionary = packageObfuscationDictionary;
}
- boolean isOverloadAggressively() {
- return overloadAggressively;
- }
-
public void setKeepParameterNames(boolean keepParameterNames, Origin optionOrigin,
Position optionPosition) {
assert optionOrigin != null || !keepParameterNames;
@@ -274,10 +269,6 @@
this.forceProguardCompatibility = forceProguardCompatibility;
}
- public void setOverloadAggressively(boolean overloadAggressively) {
- this.overloadAggressively = overloadAggressively;
- }
-
public void setConfigurationDebugging(boolean configurationDebugging) {
this.configurationDebugging = configurationDebugging;
}
@@ -341,7 +332,6 @@
rules,
printSeeds,
seedFile,
- overloadAggressively,
DictionaryReader.readAllNames(obfuscationDictionary, reporter),
DictionaryReader.readAllNames(classObfuscationDictionary, reporter),
DictionaryReader.readAllNames(packageObfuscationDictionary, reporter),
@@ -401,7 +391,6 @@
protected final ImmutableList<ProguardConfigurationRule> rules;
private final boolean printSeeds;
private final Path seedFile;
- private final boolean overloadAggressively;
private final ImmutableList<String> obfuscationDictionary;
private final ImmutableList<String> classObfuscationDictionary;
private final ImmutableList<String> packageObfuscationDictionary;
@@ -443,7 +432,6 @@
Set<ProguardConfigurationRule> rules,
boolean printSeeds,
Path seedFile,
- boolean overloadAggressively,
ImmutableList<String> obfuscationDictionary,
ImmutableList<String> classObfuscationDictionary,
ImmutableList<String> packageObfuscationDictionary,
@@ -483,7 +471,6 @@
this.rules = ImmutableList.copyOf(rules);
this.printSeeds = printSeeds;
this.seedFile = seedFile;
- this.overloadAggressively = overloadAggressively;
this.obfuscationDictionary = obfuscationDictionary;
this.classObfuscationDictionary = classObfuscationDictionary;
this.packageObfuscationDictionary = packageObfuscationDictionary;
@@ -616,7 +603,7 @@
}
public boolean isOverloadAggressively() {
- return overloadAggressively;
+ return false;
}
public List<String> getObfuscationDictionary() {
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 803c78d..8f3056b 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
@@ -73,7 +73,7 @@
"dontskipnonpubliclibraryclasses",
"dontskipnonpubliclibraryclassmembers",
"invokebasemethod",
- // TODO(b/62524562): we may support this later.
+ "overloadaggressively",
"mergeinterfacesaggressively",
"android",
"allowruntypeandignoreoptimizationpasses",
@@ -401,8 +401,6 @@
}
}
}
- } else if (acceptString("overloadaggressively")) {
- configurationBuilder.setOverloadAggressively(true);
} else if (acceptString("allowaccessmodification")) {
configurationBuilder.setAllowAccessModification(true);
} else if (acceptString("printconfiguration")) {
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 93f6288..74620e9 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -1593,19 +1593,14 @@
public enum MinifyMode {
NONE,
- JAVA,
- AGGRESSIVE;
+ JAVA;
public boolean isMinify() {
return this != NONE;
}
- public boolean isAggressive() {
- return this == AGGRESSIVE;
- }
-
public static MinifyMode[] withoutNone() {
- return new MinifyMode[] {JAVA, AGGRESSIVE};
+ return new MinifyMode[] {JAVA};
}
}
diff --git a/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java b/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java
index cd8e931..c38a414 100644
--- a/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/naming/CovariantReturnTypeInSubInterfaceTest.java
@@ -6,7 +6,6 @@
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
@@ -77,23 +76,21 @@
this.parameters = parameters;
}
- private void test(boolean overloadAggressively) throws Exception {
+ private void test() throws Exception {
testForR8(parameters.getBackend())
.addInnerClasses(CovariantReturnTypeInSubInterfaceTest.class)
.setMinApi(parameters.getApiLevel())
.addKeepMainRule(TestMain.class)
.addKeepRules(
"-keep,allowobfuscation class **.*$Super* { <methods>; }",
- "-keep,allowobfuscation class **.*$Sub* { <methods>; }",
- overloadAggressively ? "-overloadaggressively" : "# Not overload aggressively")
+ "-keep,allowobfuscation class **.*$Sub* { <methods>; }")
.addOptionsModification(
internalOptions -> internalOptions.inlinerOptions().enableInlining = false)
.run(parameters.getRuntime(), TestMain.class)
- .inspect(inspector -> inspect(inspector, overloadAggressively));
+ .inspect(inspector -> inspect(inspector));
}
- private void inspect(CodeInspector inspector, boolean overloadAggressively)
- throws NoSuchMethodException {
+ private void inspect(CodeInspector inspector) throws NoSuchMethodException {
ClassSubject superInterface = inspector.clazz(SuperInterface.class);
assertThat(superInterface, isPresentAndRenamed());
MethodSubject foo1 = superInterface.uniqueMethodWithOriginalName("foo");
@@ -102,21 +99,11 @@
assertThat(subInterface, isPresentAndRenamed());
MethodSubject foo2 = subInterface.method(SubInterface.class.getDeclaredMethod("foo"));
assertThat(foo2, isPresentAndRenamed());
- if (overloadAggressively && parameters.isDexRuntime()) {
- assertNotEquals(foo1.getFinalName(), foo2.getFinalName());
- } else {
- assertEquals(foo1.getFinalName(), foo2.getFinalName());
- }
+ assertEquals(foo1.getFinalName(), foo2.getFinalName());
}
@Test
public void test_notAggressively() throws Exception {
- test(false);
+ test();
}
-
- @Test
- public void test_aggressively() throws Exception {
- test(true);
- }
-
}
diff --git a/src/test/java/com/android/tools/r8/naming/FieldNamingObfuscationDictionaryTest.java b/src/test/java/com/android/tools/r8/naming/FieldNamingObfuscationDictionaryTest.java
deleted file mode 100644
index 0fc9365..0000000
--- a/src/test/java/com/android/tools/r8/naming/FieldNamingObfuscationDictionaryTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright (c) 2019, 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.
-
-package com.android.tools.r8.naming;
-
-import static junit.framework.TestCase.assertEquals;
-
-import com.android.tools.r8.CompilationFailedException;
-import com.android.tools.r8.NeverClassInline;
-import com.android.tools.r8.NeverInline;
-import com.android.tools.r8.NoHorizontalClassMerging;
-import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.utils.FileUtils;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.concurrent.ExecutionException;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-@RunWith(Parameterized.class)
-public class FieldNamingObfuscationDictionaryTest extends TestBase {
-
- public static class A {
-
- public String f1;
-
- public A(String a) {
- this.f1 = a;
- }
- }
-
- @NeverClassInline
- public static class B extends A {
-
- public int f0;
- public String f2;
-
- public B(int f0, String a, String b) {
- super(a);
- this.f0 = f0;
- this.f2 = b;
- }
-
- @NeverInline
- public void print() {
- System.out.println(f0 + f1 + " " + f2);
- }
- }
-
- @NeverClassInline
- @NoHorizontalClassMerging
- public static class C extends A {
-
- public int f0;
- public String f3;
-
- public C(int f0, String a, String c) {
- super(a);
- this.f0 = f0;
- this.f3 = c;
- }
-
- @NeverInline
- public void print() {
- System.out.println(f0 + f1 + " " + f3);
- }
- }
-
- public static class Runner {
-
- public static void main(String[] args) {
- new B(args.length, args[0], args[1]).print();
- new C(args.length, args[0], args[1]).print();
- }
- }
-
- private TestParameters parameters;
-
- @Parameterized.Parameters(name = "{0}")
- public static TestParametersCollection data() {
- return getTestParameters().withAllRuntimesAndApiLevels().build();
- }
-
- public FieldNamingObfuscationDictionaryTest(TestParameters parameters) {
- this.parameters = parameters;
- }
-
- @Test
- public void testInheritedNamingState()
- throws IOException, CompilationFailedException, ExecutionException {
- Path dictionary = temp.getRoot().toPath().resolve("dictionary.txt");
- FileUtils.writeTextFile(dictionary, "a", "b", "c");
-
- testForR8(parameters.getBackend())
- .addInnerClasses(FieldNamingObfuscationDictionaryTest.class)
- .addKeepRules("-overloadaggressively", "-obfuscationdictionary " + dictionary.toString())
- .addKeepMainRule(Runner.class)
- .enableInliningAnnotations()
- .enableNeverClassInliningAnnotations()
- .enableNoHorizontalClassMergingAnnotations()
- .setMinApi(parameters.getApiLevel())
- .compile()
- .run(parameters.getRuntime(), Runner.class, "HELLO", "WORLD")
- .assertSuccessWithOutputLines("2HELLO WORLD", "2HELLO WORLD")
- .inspect(
- inspector -> {
- assertEquals(
- "a", inspector.clazz(A.class).uniqueFieldWithOriginalName("f1").getFinalName());
- assertEquals(
- "a", inspector.clazz(B.class).uniqueFieldWithOriginalName("f0").getFinalName());
- assertEquals(
- "b", inspector.clazz(B.class).uniqueFieldWithOriginalName("f2").getFinalName());
- assertEquals(
- "a", inspector.clazz(C.class).uniqueFieldWithOriginalName("f0").getFinalName());
- assertEquals(
- "b", inspector.clazz(C.class).uniqueFieldWithOriginalName("f3").getFinalName());
- });
- }
-}
diff --git a/src/test/java/com/android/tools/r8/naming/InterfaceRenamingTestRunner.java b/src/test/java/com/android/tools/r8/naming/InterfaceRenamingTestRunner.java
index 4748dad..489b670 100644
--- a/src/test/java/com/android/tools/r8/naming/InterfaceRenamingTestRunner.java
+++ b/src/test/java/com/android/tools/r8/naming/InterfaceRenamingTestRunner.java
@@ -36,11 +36,6 @@
}
@Test
- public void testCfMinifyAggressive() throws Exception {
- testCf(MinifyMode.AGGRESSIVE);
- }
-
- @Test
public void testDexNoMinify() throws Exception {
testDex(MinifyMode.NONE);
}
@@ -50,11 +45,6 @@
testDex(MinifyMode.JAVA);
}
- @Test
- public void testDexMinifyAggressive() throws Exception {
- testDex(MinifyMode.AGGRESSIVE);
- }
-
private void testCf(MinifyMode minify) throws Exception {
ProcessResult runInput =
ToolHelper.runJava(ToolHelper.getClassPathForTests(), CLASS.getCanonicalName());
@@ -89,7 +79,6 @@
R8Command.builder(),
pgConfig -> {
pgConfig.setPrintMapping(true);
- pgConfig.setOverloadAggressively(minify == MinifyMode.AGGRESSIVE);
if (!minify.isMinify()) {
pgConfig.disableObfuscation();
}
diff --git a/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java b/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java
index bdd3603..484d133 100644
--- a/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java
+++ b/src/test/java/com/android/tools/r8/naming/LambdaRenamingTestRunner.java
@@ -64,26 +64,11 @@
@Test
public void testProguard() throws Exception {
assumeTrue(parameters.isCfRuntime());
- buildAndRunProguard("pg.jar", false);
- }
-
- @Test
- public void testProguardAggressive() throws Exception {
- assumeTrue(parameters.isCfRuntime());
- buildAndRunProguard("pg-aggressive.jar", true);
+ buildAndRunProguard("pg.jar");
}
@Test
public void testR8() throws Exception {
- testR8(false);
- }
-
- @Test
- public void testR8Aggressive() throws Exception {
- testR8(true);
- }
-
- private void testR8(boolean aggressive) throws Exception {
testForR8(parameters.getBackend())
.addProgramFiles(inputJar)
.addKeepMainRule(CLASS)
@@ -94,7 +79,6 @@
"-keep interface " + CLASS.getCanonicalName() + "$ReservedNameIntegerInterface2 {",
" public java.lang.Integer reservedMethod2();",
"}")
- .applyIf(aggressive, builder -> builder.addKeepRules("-overloadaggressively"))
.debug()
.setMinApi(parameters.getApiLevel())
.compile()
@@ -107,8 +91,8 @@
compileResult.runDex2Oat(parameters.getRuntime()).assertNoVerificationErrors());
}
- private void buildAndRunProguard(String outName, boolean aggressive) throws Exception {
- Path pgConfig = writeProguardRules(aggressive);
+ private void buildAndRunProguard(String outName) throws Exception {
+ Path pgConfig = writeProguardRules();
Path outPg = temp.getRoot().toPath().resolve(outName);
ProcessResult proguardResult =
ToolHelper.runProguard6Raw(
@@ -125,7 +109,7 @@
assertNotEquals(0, runPg.exitCode);
}
- private Path writeProguardRules(boolean aggressive) throws IOException {
+ private Path writeProguardRules() throws IOException {
Path pgConfig = temp.getRoot().toPath().resolve("keep.txt");
FileUtils.writeTextFile(
pgConfig,
@@ -137,8 +121,7 @@
"}",
"-keep interface " + CLASS.getCanonicalName() + "$ReservedNameIntegerInterface2 {",
" public java.lang.Integer reservedMethod2();",
- "}",
- aggressive ? "-overloadaggressively" : "# Not overloading aggressively");
+ "}");
return pgConfig;
}
}
diff --git a/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java b/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java
index b7176ab..ea58f20 100644
--- a/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java
+++ b/src/test/java/com/android/tools/r8/naming/OverloadedReservedFieldNamingTest.java
@@ -12,13 +12,12 @@
import com.android.tools.r8.NoFieldTypeStrengthening;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.FieldSubject;
-import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -26,18 +25,15 @@
@RunWith(Parameterized.class)
public class OverloadedReservedFieldNamingTest extends TestBase {
- private final boolean overloadAggressively;
+ private final boolean overloadAggressively = false;
private final TestParameters parameters;
- @Parameterized.Parameters(name = "{1}, overload aggressively: {0}")
- public static List<Object[]> data() {
- return buildParameters(
- BooleanUtils.values(), getTestParameters().withAllRuntimesAndApiLevels().build());
+ @Parameterized.Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withAllRuntimesAndApiLevels().build();
}
- public OverloadedReservedFieldNamingTest(
- boolean overloadAggressively, TestParameters parameters) {
- this.overloadAggressively = overloadAggressively;
+ public OverloadedReservedFieldNamingTest(TestParameters parameters) {
this.parameters = parameters;
}
diff --git a/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java b/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java
index c54b51b..46e691f 100644
--- a/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java
+++ b/src/test/java/com/android/tools/r8/naming/overloadaggressively/OverloadAggressivelyTest.java
@@ -120,11 +120,6 @@
}
@Test
- public void testFieldUpdater_aggressively() throws Exception {
- fieldUpdater(true);
- }
-
- @Test
public void testFieldUpdater_not_aggressively() throws Exception {
fieldUpdater(false);
}
@@ -166,11 +161,6 @@
}
@Test
- public void testFieldResolution_aggressively() throws Exception {
- fieldResolution(true);
- }
-
- @Test
public void testFieldResolution_not_aggressively() throws Exception {
fieldResolution(false);
}
@@ -219,12 +209,6 @@
}
@Test
- public void testMethodResolution_aggressively() throws Exception {
- assumeTrue(parameters.isCfRuntime());
- methodResolution(true);
- }
-
- @Test
public void testMethodResolution_not_aggressively() throws Exception {
methodResolution(false);
}
diff --git a/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java b/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java
index 6c1175c..bec7505 100644
--- a/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java
+++ b/src/test/java/com/android/tools/r8/naming/overloadaggressively/ValidNameConflictTest.java
@@ -165,34 +165,6 @@
assertEquals(javaOutput.stdout, output.stdout);
}
- @Test
- public void remainFieldNameConflict_overloadaggressively() throws Exception {
- JasminBuilder builder = buildFieldNameConflictClassFile();
- ProcessResult javaOutput = runOnJavaNoVerifyRaw(builder, CLASS_NAME);
- assertEquals(0, javaOutput.exitCode);
-
- List<String> pgConfigs = ImmutableList.of(
- keepMainProguardConfiguration(CLASS_NAME),
- "-overloadaggressively",
- "-dontshrink");
- AndroidApp app = compileWithR8(builder, pgConfigs, null, backend);
-
- CodeInspector codeInspector = new CodeInspector(app);
- ClassSubject clazz = codeInspector.clazz(CLASS_NAME);
- assertTrue(clazz.isPresent());
- FieldSubject f1 = clazz.field("java.lang.String", REPEATED_NAME);
- assertTrue(f1.isPresent());
- assertTrue(f1.isRenamed());
- FieldSubject f2 = clazz.field("java.lang.Object", REPEATED_NAME);
- assertTrue(f2.isPresent());
- assertTrue(f2.isRenamed());
- assertEquals(f1.getFinalName(), f2.getFinalName());
-
- ProcessResult output = runRaw(app, CLASS_NAME);
- assertEquals(0, output.exitCode);
- assertEquals(javaOutput.stdout, output.stdout);
- }
-
private JasminBuilder buildMethodNameConflictClassFile() {
JasminBuilder builder = new JasminBuilder();
ClassBuilder classBuilder = builder.addClass(ANOTHER_CLASS);
@@ -276,37 +248,6 @@
new HashSet<>(StringUtils.splitLines(output.stdout)));
}
- @Test
- public void remainMethodNameConflict_overloadaggressively() throws Exception {
- JasminBuilder builder = buildMethodNameConflictClassFile();
- ProcessResult javaOutput = runOnJavaNoVerifyRaw(builder, CLASS_NAME);
- assertEquals(0, javaOutput.exitCode);
-
- List<String> pgConfigs = ImmutableList.of(
- keepMainProguardConfiguration(CLASS_NAME),
- "-overloadaggressively",
- "-dontshrink");
- AndroidApp app = compileWithR8(builder, pgConfigs, null, backend);
-
- CodeInspector codeInspector = new CodeInspector(app);
- ClassSubject clazz = codeInspector.clazz(ANOTHER_CLASS);
- assertTrue(clazz.isPresent());
- MethodSubject m1 = clazz.method("java.lang.String", REPEATED_NAME, ImmutableList.of());
- assertTrue(m1.isPresent());
- assertTrue(m1.isRenamed());
- MethodSubject m2 = clazz.method("java.lang.Object", REPEATED_NAME, ImmutableList.of());
- assertTrue(m2.isPresent());
- assertTrue(m2.isRenamed());
- if (backend == Backend.DEX) {
- assertNotEquals(m1.getFinalName(), m2.getFinalName());
- } else {
- assertEquals(m1.getFinalName(), m2.getFinalName());
- }
-
- ProcessResult output = runRaw(app, CLASS_NAME);
- assertEquals(0, output.exitCode);
- assertEquals(javaOutput.stdout, output.stdout);
- }
private JasminBuilder buildMethodNameConflictInHierarchy() {
JasminBuilder builder = new JasminBuilder();
@@ -437,57 +378,4 @@
new HashSet<>(StringUtils.splitLines(javaOutput.stdout)),
new HashSet<>(StringUtils.splitLines(output.stdout)));
}
-
- @Test
- public void remainMethodNameConflictInHierarchy_overloadaggressively() throws Exception {
- JasminBuilder builder = buildMethodNameConflictInHierarchy();
- ProcessResult javaOutput = runOnJavaNoVerifyRaw(builder, CLASS_NAME);
- assertEquals(0, javaOutput.exitCode);
-
- List<String> pgConfigs =
- ImmutableList.of(
- keepMainProguardConfiguration(CLASS_NAME),
- "-overloadaggressively",
- "-dontoptimize",
- "-dontshrink");
- AndroidApp app = compileWithR8(builder, pgConfigs, null, backend);
-
- CodeInspector codeInspector = new CodeInspector(app);
-
- ClassSubject sup = codeInspector.clazz(SUPER_CLASS);
- assertTrue(sup.isPresent());
- MethodSubject m1 = sup.method("java.lang.String", REPEATED_NAME, ImmutableList.of());
- assertTrue(m1.isPresent());
- assertTrue(m1.isRenamed());
- MethodSubject m2 = sup.method("java.lang.Object", REPEATED_NAME, ImmutableList.of());
- assertTrue(m2.isPresent());
- assertTrue(m2.isRenamed());
- if (backend == Backend.DEX) {
- assertNotEquals(m1.getFinalName(), m2.getFinalName());
- } else {
- assertEquals(m1.getFinalName(), m2.getFinalName());
- }
-
- ClassSubject sub = codeInspector.clazz(ANOTHER_CLASS);
- assertTrue(sub.isPresent());
- MethodSubject subM1 = sub.method("java.lang.String", REPEATED_NAME, ImmutableList.of());
- assertTrue(subM1.isPresent());
- assertTrue(subM1.isRenamed());
- MethodSubject subM2 = sub.method("java.lang.Object", REPEATED_NAME, ImmutableList.of());
- assertTrue(subM2.isPresent());
- assertTrue(subM2.isRenamed());
- if (backend == Backend.DEX) {
- assertNotEquals(subM1.getFinalName(), subM2.getFinalName());
- } else {
- assertEquals(subM1.getFinalName(), subM2.getFinalName());
- }
-
- // No matter what, overloading methods should be renamed to the same name.
- assertEquals(m1.getFinalName(), subM1.getFinalName());
- assertEquals(m2.getFinalName(), subM2.getFinalName());
-
- ProcessResult output = runRaw(app, CLASS_NAME);
- assertEquals(0, output.exitCode);
- assertEquals(javaOutput.stdout, output.stdout);
- }
}
diff --git a/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java b/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java
index 88dd300..1533aca 100644
--- a/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java
+++ b/src/test/java/com/android/tools/r8/shaking/InstantiatedLambdasTestRunner.java
@@ -64,26 +64,10 @@
}
@Test
- public void testProguardAggressive() throws Exception {
- assumeTrue(parameters.isCfRuntime());
- buildAndRunProguard("pg-aggressive.jar", true);
- }
-
- @Test
public void testR8() throws Exception {
- testR8(false);
- }
-
- @Test
- public void testR8Aggressive() throws Exception {
- testR8(true);
- }
-
- private void testR8(boolean aggressive) throws Exception {
testForR8(parameters.getBackend())
.addProgramFiles(inputJar)
.addKeepMainRule(CLASS)
- .applyIf(aggressive, builder -> builder.addKeepRules("-overloadaggressively"))
.debug()
.setMinApi(parameters.getApiLevel())
.compile()
diff --git a/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java b/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java
index e480696..1d5d9c8 100644
--- a/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/TreeShakingTest.java
@@ -185,7 +185,6 @@
ToolHelper.getAppBuilder(b.getBuilder())
.addProgramFiles(Paths.get(programFile)))
.enableProguardTestOptions()
- .applyIf(minify.isAggressive(), b -> b.addKeepRules("-overloadaggressively"))
.minification(minify.isMinify())
.setMinApi(parameters.getApiLevel())
.addKeepRuleFiles(ListUtils.map(keepRulesFiles, Paths::get))