Remove deprecated assertion configuration APIs
Fixes: b/230695416
Change-Id: Ia499c65eb55b36d1de5ef0a8af4bb6121a1d065e
diff --git a/src/main/java/com/android/tools/r8/AssertionsConfiguration.java b/src/main/java/com/android/tools/r8/AssertionsConfiguration.java
index 2f119ca..d0d268c 100644
--- a/src/main/java/com/android/tools/r8/AssertionsConfiguration.java
+++ b/src/main/java/com/android/tools/r8/AssertionsConfiguration.java
@@ -11,25 +11,9 @@
@Keep
public class AssertionsConfiguration {
- /**
- * The simple transformations of the javac generated assertion code during compilation (see {@link
- * AssertionsConfiguration.Builder#setTransformation(AssertionTransformation)}). For configuring
- * the transformation to invoke an assertion handler use {@link
- * AssertionsConfiguration.Builder#setAssertionHandler(MethodReference)}.
- *
- * @deprecated As of version 3.3 this enum should not be used.
- */
- @Deprecated
- @Keep
- public enum AssertionTransformation {
- /** Unconditionally enable the javac generated assertion code. */
+ private enum AssertionTransformation {
ENABLE,
- /**
- * Unconditionally disable the javac generated assertion code. This will most likely remove the
- * javac generated assertion code completely.
- */
DISABLE,
- /** Passthrough of the javac generated assertion code. */
PASSTHROUGH
}
@@ -72,15 +56,6 @@
return assertionHandler != null;
}
- /**
- * @deprecated As of version 3.3, use one of {@link #isCompileTimeEnabled()} ()}, {@link
- * #isCompileTimeDisabled()} ()} or {@link #isPassthrough()} ()}.
- */
- @Deprecated
- public AssertionTransformation getTransformation() {
- return transformation;
- }
-
public MethodReference getAssertionHandler() {
return assertionHandler;
}
@@ -115,14 +90,7 @@
this.reporter = reporter;
}
- /**
- * Set how to handle javac generated assertion code.
- *
- * @deprecated As of version 3.3, use one of {@link #setCompileTimeDisable()}, {@link
- * #setCompileTimeDisable()} or {@link #setPassthrough()} ()}.
- */
- @Deprecated
- public AssertionsConfiguration.Builder setTransformation(
+ private AssertionsConfiguration.Builder setTransformation(
AssertionTransformation transformation) {
this.transformation = transformation;
this.assertionHandler = null;
@@ -138,13 +106,6 @@
return this;
}
- /** @deprecated As of version 3.3, replaced by {@link #setCompileTimeEnable()} ()} */
- @Deprecated
- public AssertionsConfiguration.Builder setEnable() {
- setTransformation(AssertionTransformation.ENABLE);
- return this;
- }
-
/**
* Disable the javac generated assertion code in all packages and classes. This corresponds to
* passing <code>-disableassertions</code> or <code>-da</code> to the java CLI.
@@ -154,13 +115,6 @@
return this;
}
- /** @deprecated As of version 3.3, replaced by {@link #setCompileTimeDisable()} */
- @Deprecated
- public AssertionsConfiguration.Builder setDisable() {
- setTransformation(AssertionTransformation.DISABLE);
- return this;
- }
-
/** Passthrough of the javac generated assertion code in all packages and classes. */
public AssertionsConfiguration.Builder setPassthrough() {
setTransformation(AssertionTransformation.PASSTHROUGH);
@@ -265,16 +219,6 @@
}
/**
- * @deprecated As of version 3.3, replaced by {@link #compileTimeEnableAllAssertions(Builder)}
- * ()}
- */
- @Deprecated
- public static AssertionsConfiguration enableAllAssertions(
- AssertionsConfiguration.Builder builder) {
- return compileTimeEnableAllAssertions(builder);
- }
-
- /**
* Static helper to build an <code>AssertionConfiguration</code> which unconditionally disables
* javac generated assertion code in all packages and classes. To be used like this:
*
@@ -302,16 +246,6 @@
}
/**
- * @deprecated As of version 3.3, replaced by {@link #compileTimeDisableAllAssertions(Builder)}
- * ()}
- */
- @Deprecated
- public static AssertionsConfiguration disableAllAssertions(
- AssertionsConfiguration.Builder builder) {
- return compileTimeDisableAllAssertions(builder);
- }
-
- /**
* Static helper to build an <code>AssertionConfiguration</code> which will passthrough javac
* generated assertion code in all packages and classes. To be used like this:
*
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index fe2ed57..ddb1994 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -5,7 +5,6 @@
import static com.android.tools.r8.utils.InternalOptions.DETERMINISTIC_DEBUGGING;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.dex.Marker.Tool;
import com.android.tools.r8.dump.DumpOptions;
import com.android.tools.r8.errors.DexFileOverflowDiagnostic;
@@ -605,7 +604,7 @@
internal.assertionsConfiguration =
new AssertionConfigurationWithDefault(
AssertionsConfiguration.builder(getReporter())
- .setTransformation(AssertionTransformation.DISABLE)
+ .setCompileTimeDisable()
.setScopeAll()
.build(),
getAssertionsConfiguration());
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java
index f4bb9c2..8175e7c 100644
--- a/src/main/java/com/android/tools/r8/L8Command.java
+++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -5,7 +5,6 @@
import static com.android.tools.r8.utils.InternalOptions.DETERMINISTIC_DEBUGGING;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.ProgramResource.Kind;
import com.android.tools.r8.dex.Marker.Tool;
import com.android.tools.r8.dump.DumpOptions;
@@ -204,7 +203,7 @@
internal.assertionsConfiguration =
new AssertionConfigurationWithDefault(
AssertionsConfiguration.builder(getReporter())
- .setTransformation(AssertionTransformation.DISABLE)
+ .setCompileTimeDisable()
.setScopeAll()
.build(),
getAssertionsConfiguration());
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 7bdb3b9..b8db7fc 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -5,7 +5,6 @@
import static com.android.tools.r8.utils.InternalOptions.DETERMINISTIC_DEBUGGING;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.ProgramResource.Kind;
import com.android.tools.r8.dex.Marker.Tool;
import com.android.tools.r8.dump.DumpOptions;
@@ -956,15 +955,12 @@
// Default is to remove all javac generated assertion code when generating dex.
assert internal.assertionsConfiguration == null;
+ AssertionsConfiguration.Builder builder = AssertionsConfiguration.builder(getReporter());
internal.assertionsConfiguration =
new AssertionConfigurationWithDefault(
- AssertionsConfiguration.builder(getReporter())
- .setTransformation(
- getProgramConsumer() instanceof ClassFileConsumer
- ? AssertionTransformation.PASSTHROUGH
- : AssertionTransformation.DISABLE)
- .setScopeAll()
- .build(),
+ getProgramConsumer() instanceof ClassFileConsumer
+ ? AssertionsConfiguration.Builder.passthroughAllAssertions(builder)
+ : AssertionsConfiguration.Builder.compileTimeDisableAllAssertions(builder),
getAssertionsConfiguration());
// TODO(b/171552739): Enable class merging for CF. When compiling libraries, we need to be
diff --git a/src/main/java/com/android/tools/r8/utils/AssertionConfigurationWithDefault.java b/src/main/java/com/android/tools/r8/utils/AssertionConfigurationWithDefault.java
index a0a5836..fc2adf2 100644
--- a/src/main/java/com/android/tools/r8/utils/AssertionConfigurationWithDefault.java
+++ b/src/main/java/com/android/tools/r8/utils/AssertionConfigurationWithDefault.java
@@ -5,7 +5,6 @@
package com.android.tools.r8.utils;
import com.android.tools.r8.AssertionsConfiguration;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.AssertionsConfiguration.AssertionTransformationScope;
import com.android.tools.r8.references.MethodReference;
import com.google.common.collect.ImmutableList;
@@ -29,12 +28,11 @@
public boolean isPassthroughAll() {
if (assertionsConfigurations.size() == 0) {
- return defaultConfiguration.getTransformation() == AssertionTransformation.PASSTHROUGH;
+ return defaultConfiguration.isPassthrough();
}
return assertionsConfigurations.size() == 1
&& assertionsConfigurations.get(0).getScope() == AssertionTransformationScope.ALL
- && assertionsConfigurations.get(0).getTransformation()
- == AssertionTransformation.PASSTHROUGH;
+ && assertionsConfigurations.get(0).isPassthrough();
}
public List<MethodReference> getAllAssertionHandlers() {
diff --git a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java
index 27dbc0f..906f88c 100644
--- a/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java
+++ b/src/test/apiUsageSample/com/android/tools/apiusagesample/D8ApiUsageSample.java
@@ -351,21 +351,27 @@
.addLibraryFiles(libraries)
.addClasspathFiles(classpath)
.addProgramFiles(inputs)
- .addAssertionsConfiguration(b -> b.setScopeAll().setEnable().build())
- .addAssertionsConfiguration(b -> b.setScopeAll().setDisable().build())
+ .addAssertionsConfiguration(b -> b.setScopeAll().setCompileTimeEnable().build())
+ .addAssertionsConfiguration(b -> b.setScopeAll().setCompileTimeDisable().build())
.addAssertionsConfiguration(
- b -> b.setScopePackage("com.android.tools.apiusagesample").setEnable().build())
+ b ->
+ b.setScopePackage("com.android.tools.apiusagesample")
+ .setCompileTimeEnable()
+ .build())
.addAssertionsConfiguration(
b ->
b.setScopePackage("com.android.tools.apiusagesample")
.setPassthrough()
.build())
.addAssertionsConfiguration(
- b -> b.setScopePackage("com.android.tools.apiusagesample").setDisable().build())
+ b ->
+ b.setScopePackage("com.android.tools.apiusagesample")
+ .setCompileTimeDisable()
+ .build())
.addAssertionsConfiguration(
b ->
b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
- .setEnable()
+ .setCompileTimeEnable()
.build())
.addAssertionsConfiguration(
b ->
@@ -375,11 +381,13 @@
.addAssertionsConfiguration(
b ->
b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
- .setDisable()
+ .setCompileTimeDisable()
.build())
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+ .addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions)
.addAssertionsConfiguration(AssertionsConfiguration.Builder::passthroughAllAssertions)
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::disableAllAssertions)
+ .addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions)
.build());
} catch (CompilationFailedException e) {
throw new RuntimeException("Unexpected compilation exceptions", e);
diff --git a/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java b/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java
index febd5e6..4b86cea 100644
--- a/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java
+++ b/src/test/apiUsageSample/com/android/tools/apiusagesample/R8ApiUsageSample.java
@@ -416,21 +416,27 @@
.setProgramConsumer(new EnsureOutputConsumer())
.addLibraryFiles(libraries)
.addProgramFiles(inputs)
- .addAssertionsConfiguration(b -> b.setScopeAll().setEnable().build())
- .addAssertionsConfiguration(b -> b.setScopeAll().setDisable().build())
+ .addAssertionsConfiguration(b -> b.setScopeAll().setCompileTimeEnable().build())
+ .addAssertionsConfiguration(b -> b.setScopeAll().setCompileTimeDisable().build())
.addAssertionsConfiguration(
- b -> b.setScopePackage("com.android.tools.apiusagesample").setEnable().build())
+ b ->
+ b.setScopePackage("com.android.tools.apiusagesample")
+ .setCompileTimeEnable()
+ .build())
.addAssertionsConfiguration(
b ->
b.setScopePackage("com.android.tools.apiusagesample")
.setPassthrough()
.build())
.addAssertionsConfiguration(
- b -> b.setScopePackage("com.android.tools.apiusagesample").setDisable().build())
+ b ->
+ b.setScopePackage("com.android.tools.apiusagesample")
+ .setCompileTimeDisable()
+ .build())
.addAssertionsConfiguration(
b ->
b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
- .setEnable()
+ .setCompileTimeEnable()
.build())
.addAssertionsConfiguration(
b ->
@@ -440,11 +446,13 @@
.addAssertionsConfiguration(
b ->
b.setScopeClass("com.android.tools.apiusagesample.D8ApiUsageSample")
- .setDisable()
+ .setCompileTimeDisable()
.build())
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+ .addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions)
.addAssertionsConfiguration(AssertionsConfiguration.Builder::passthroughAllAssertions)
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::disableAllAssertions)
+ .addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions)
.build());
} catch (CompilationFailedException e) {
throw new RuntimeException("Unexpected compilation exceptions", e);
diff --git a/src/test/java/com/android/tools/r8/D8CommandTest.java b/src/test/java/com/android/tools/r8/D8CommandTest.java
index 78be322..c592df2 100644
--- a/src/test/java/com/android/tools/r8/D8CommandTest.java
+++ b/src/test/java/com/android/tools/r8/D8CommandTest.java
@@ -14,7 +14,6 @@
import static org.junit.Assert.fail;
import com.android.sdklib.AndroidVersion;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.AssertionsConfiguration.AssertionTransformationScope;
import com.android.tools.r8.D8CommandParser.OrderedClassFileResourceProvider;
import com.android.tools.r8.ToolHelper.ProcessResult;
@@ -38,7 +37,7 @@
import java.util.Collection;
import java.util.List;
import java.util.Set;
-import java.util.function.Function;
+import java.util.function.Predicate;
import java.util.zip.ZipFile;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -583,39 +582,32 @@
}
private void checkSingleForceAllAssertion(
- List<AssertionsConfiguration> entries, AssertionTransformation transformation) {
+ List<AssertionsConfiguration> entries, Predicate<AssertionsConfiguration> check) {
assertEquals(1, entries.size());
- assertEquals(transformation, entries.get(0).getTransformation());
- assertEquals(AssertionTransformationScope.ALL, entries.get(0).getScope());
- }
-
- private void checkSingleForceAllAssertion(
- List<AssertionsConfiguration> entries, Function<AssertionsConfiguration, Boolean> check) {
- assertEquals(1, entries.size());
- assertTrue(check.apply(entries.get(0)));
+ assertTrue(check.test(entries.get(0)));
assertEquals(AssertionTransformationScope.ALL, entries.get(0).getScope());
}
private void checkSingleForceClassAndPackageAssertion(
- List<AssertionsConfiguration> entries, AssertionTransformation transformation) {
+ List<AssertionsConfiguration> entries, Predicate<AssertionsConfiguration> check) {
assertEquals(2, entries.size());
- assertEquals(transformation, entries.get(0).getTransformation());
+ assertTrue(check.test(entries.get(0)));
assertEquals(AssertionTransformationScope.CLASS, entries.get(0).getScope());
assertEquals("ClassName", entries.get(0).getValue());
- assertEquals(transformation, entries.get(1).getTransformation());
+ assertTrue(check.test(entries.get(1)));
assertEquals(AssertionTransformationScope.PACKAGE, entries.get(1).getScope());
assertEquals("PackageName", entries.get(1).getValue());
}
private void checkSingleForceClassAndPackageAssertion(
List<AssertionsConfiguration> entries,
- Function<AssertionsConfiguration, Boolean> checkClass,
- Function<AssertionsConfiguration, Boolean> checkPackage) {
+ Predicate<AssertionsConfiguration> checkClass,
+ Predicate<AssertionsConfiguration> checkPackage) {
assertEquals(2, entries.size());
- assertTrue(checkClass.apply(entries.get(0)));
+ assertTrue(checkClass.test(entries.get(0)));
assertEquals(AssertionTransformationScope.CLASS, entries.get(0).getScope());
assertEquals("ClassName", entries.get(0).getValue());
- assertTrue(checkPackage.apply(entries.get(1)));
+ assertTrue(checkPackage.test(entries.get(1)));
assertEquals(AssertionTransformationScope.PACKAGE, entries.get(1).getScope());
assertEquals("PackageName", entries.get(1).getValue());
}
@@ -624,27 +616,27 @@
public void forceAssertionOption() throws Exception {
checkSingleForceAllAssertion(
parse("--force-enable-assertions").getAssertionsConfiguration(),
- AssertionTransformation.ENABLE);
+ AssertionsConfiguration::isCompileTimeEnabled);
checkSingleForceAllAssertion(
parse("--force-disable-assertions").getAssertionsConfiguration(),
- AssertionTransformation.DISABLE);
+ AssertionsConfiguration::isCompileTimeDisabled);
checkSingleForceAllAssertion(
parse("--force-passthrough-assertions").getAssertionsConfiguration(),
- AssertionTransformation.PASSTHROUGH);
+ AssertionsConfiguration::isPassthrough);
checkSingleForceClassAndPackageAssertion(
parse("--force-enable-assertions:ClassName", "--force-enable-assertions:PackageName...")
.getAssertionsConfiguration(),
- AssertionTransformation.ENABLE);
+ AssertionsConfiguration::isCompileTimeEnabled);
checkSingleForceClassAndPackageAssertion(
parse("--force-disable-assertions:ClassName", "--force-disable-assertions:PackageName...")
.getAssertionsConfiguration(),
- AssertionTransformation.DISABLE);
+ AssertionsConfiguration::isCompileTimeDisabled);
checkSingleForceClassAndPackageAssertion(
parse(
"--force-passthrough-assertions:ClassName",
"--force-passthrough-assertions:PackageName...")
.getAssertionsConfiguration(),
- AssertionTransformation.PASSTHROUGH);
+ AssertionsConfiguration::isPassthrough);
checkSingleForceAllAssertion(
parse("--force-assertions-handler:com.example.MyHandler.handler")
.getAssertionsConfiguration(),
diff --git a/src/test/java/com/android/tools/r8/L8CommandTest.java b/src/test/java/com/android/tools/r8/L8CommandTest.java
index 0dac7a3..dbc7ebd 100644
--- a/src/test/java/com/android/tools/r8/L8CommandTest.java
+++ b/src/test/java/com/android/tools/r8/L8CommandTest.java
@@ -13,7 +13,6 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.AssertionsConfiguration.AssertionTransformationScope;
import com.android.tools.r8.StringConsumer.FileConsumer;
import com.android.tools.r8.dex.Marker.Tool;
@@ -32,7 +31,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.function.Function;
+import java.util.function.Predicate;
import org.hamcrest.Matcher;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -368,39 +367,32 @@
}
private void checkSingleForceAllAssertion(
- List<AssertionsConfiguration> entries, AssertionTransformation transformation) {
+ List<AssertionsConfiguration> entries, Predicate<AssertionsConfiguration> x) {
assertEquals(1, entries.size());
- assertEquals(transformation, entries.get(0).getTransformation());
- assertEquals(AssertionTransformationScope.ALL, entries.get(0).getScope());
- }
-
- private void checkSingleForceAllAssertion(
- List<AssertionsConfiguration> entries, Function<AssertionsConfiguration, Boolean> check) {
- assertEquals(1, entries.size());
- assertTrue(check.apply(entries.get(0)));
+ assertTrue(x.test(entries.get(0)));
assertEquals(AssertionTransformationScope.ALL, entries.get(0).getScope());
}
private void checkSingleForceClassAndPackageAssertion(
- List<AssertionsConfiguration> entries, AssertionTransformation transformation) {
+ List<AssertionsConfiguration> entries, Predicate<AssertionsConfiguration> x) {
assertEquals(2, entries.size());
- assertEquals(transformation, entries.get(0).getTransformation());
+ assertTrue(x.test(entries.get(0)));
assertEquals(AssertionTransformationScope.CLASS, entries.get(0).getScope());
assertEquals("ClassName", entries.get(0).getValue());
- assertEquals(transformation, entries.get(1).getTransformation());
+ assertTrue(x.test(entries.get(1)));
assertEquals(AssertionTransformationScope.PACKAGE, entries.get(1).getScope());
assertEquals("PackageName", entries.get(1).getValue());
}
private void checkSingleForceClassAndPackageAssertion(
List<AssertionsConfiguration> entries,
- Function<AssertionsConfiguration, Boolean> checkClass,
- Function<AssertionsConfiguration, Boolean> checkPackage) {
+ Predicate<AssertionsConfiguration> checkClass,
+ Predicate<AssertionsConfiguration> checkPackage) {
assertEquals(2, entries.size());
- assertTrue(checkClass.apply(entries.get(0)));
+ assertTrue(checkClass.test(entries.get(0)));
assertEquals(AssertionTransformationScope.CLASS, entries.get(0).getScope());
assertEquals("ClassName", entries.get(0).getValue());
- assertTrue(checkPackage.apply(entries.get(1)));
+ assertTrue(checkPackage.test(entries.get(1)));
assertEquals(AssertionTransformationScope.PACKAGE, entries.get(1).getScope());
assertEquals("PackageName", entries.get(1).getValue());
}
@@ -413,21 +405,21 @@
"--desugared-lib",
ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
- AssertionTransformation.ENABLE);
+ AssertionsConfiguration::isCompileTimeEnabled);
checkSingleForceAllAssertion(
parse(
"--force-disable-assertions",
"--desugared-lib",
ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
- AssertionTransformation.DISABLE);
+ AssertionsConfiguration::isCompileTimeDisabled);
checkSingleForceAllAssertion(
parse(
"--force-passthrough-assertions",
"--desugared-lib",
ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
- AssertionTransformation.PASSTHROUGH);
+ AssertionsConfiguration::isPassthrough);
checkSingleForceClassAndPackageAssertion(
parse(
"--force-enable-assertions:ClassName",
@@ -435,7 +427,7 @@
"--desugared-lib",
ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
- AssertionTransformation.ENABLE);
+ AssertionsConfiguration::isCompileTimeEnabled);
checkSingleForceClassAndPackageAssertion(
parse(
"--force-disable-assertions:ClassName",
@@ -443,7 +435,7 @@
"--desugared-lib",
ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
- AssertionTransformation.DISABLE);
+ AssertionsConfiguration::isCompileTimeDisabled);
checkSingleForceClassAndPackageAssertion(
parse(
"--force-passthrough-assertions:ClassName",
@@ -451,7 +443,7 @@
"--desugared-lib",
ToolHelper.getDesugarLibJsonForTesting().toString())
.getAssertionsConfiguration(),
- AssertionTransformation.PASSTHROUGH);
+ AssertionsConfiguration::isPassthrough);
checkSingleForceAllAssertion(
parse(
"--force-assertions-handler:com.example.MyHandler.handler",
diff --git a/src/test/java/com/android/tools/r8/R8CommandTest.java b/src/test/java/com/android/tools/r8/R8CommandTest.java
index c5e961c..302b84a 100644
--- a/src/test/java/com/android/tools/r8/R8CommandTest.java
+++ b/src/test/java/com/android/tools/r8/R8CommandTest.java
@@ -14,7 +14,6 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.AssertionsConfiguration.AssertionTransformationScope;
import com.android.tools.r8.ProgramResource.Kind;
import com.android.tools.r8.ToolHelper.ProcessResult;
@@ -39,7 +38,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import java.util.function.Function;
+import java.util.function.Predicate;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
@@ -730,39 +729,32 @@
}
private void checkSingleForceAllAssertion(
- List<AssertionsConfiguration> entries, AssertionTransformation transformation) {
+ List<AssertionsConfiguration> entries, Predicate<AssertionsConfiguration> x) {
assertEquals(1, entries.size());
- assertEquals(transformation, entries.get(0).getTransformation());
- assertEquals(AssertionTransformationScope.ALL, entries.get(0).getScope());
- }
-
- private void checkSingleForceAllAssertion(
- List<AssertionsConfiguration> entries, Function<AssertionsConfiguration, Boolean> check) {
- assertEquals(1, entries.size());
- assertTrue(check.apply(entries.get(0)));
+ assertTrue(x.test(entries.get(0)));
assertEquals(AssertionTransformationScope.ALL, entries.get(0).getScope());
}
private void checkSingleForceClassAndPackageAssertion(
- List<AssertionsConfiguration> entries, AssertionTransformation transformation) {
+ List<AssertionsConfiguration> entries, Predicate<AssertionsConfiguration> x) {
assertEquals(2, entries.size());
- assertEquals(transformation, entries.get(0).getTransformation());
+ assertTrue(x.test(entries.get(0)));
assertEquals(AssertionTransformationScope.CLASS, entries.get(0).getScope());
assertEquals("ClassName", entries.get(0).getValue());
- assertEquals(transformation, entries.get(1).getTransformation());
+ assertTrue(x.test(entries.get(1)));
assertEquals(AssertionTransformationScope.PACKAGE, entries.get(1).getScope());
assertEquals("PackageName", entries.get(1).getValue());
}
private void checkSingleForceClassAndPackageAssertion(
List<AssertionsConfiguration> entries,
- Function<AssertionsConfiguration, Boolean> checkClass,
- Function<AssertionsConfiguration, Boolean> checkPackage) {
+ Predicate<AssertionsConfiguration> checkClass,
+ Predicate<AssertionsConfiguration> checkPackage) {
assertEquals(2, entries.size());
- assertTrue(checkClass.apply(entries.get(0)));
+ assertTrue(checkClass.test(entries.get(0)));
assertEquals(AssertionTransformationScope.CLASS, entries.get(0).getScope());
assertEquals("ClassName", entries.get(0).getValue());
- assertTrue(checkPackage.apply(entries.get(1)));
+ assertTrue(checkPackage.test(entries.get(1)));
assertEquals(AssertionTransformationScope.PACKAGE, entries.get(1).getScope());
assertEquals("PackageName", entries.get(1).getValue());
}
@@ -771,27 +763,27 @@
public void forceAssertionOption() throws Exception {
checkSingleForceAllAssertion(
parse("--force-enable-assertions").getAssertionsConfiguration(),
- AssertionTransformation.ENABLE);
+ AssertionsConfiguration::isCompileTimeEnabled);
checkSingleForceAllAssertion(
parse("--force-disable-assertions").getAssertionsConfiguration(),
- AssertionTransformation.DISABLE);
+ AssertionsConfiguration::isCompileTimeDisabled);
checkSingleForceAllAssertion(
parse("--force-passthrough-assertions").getAssertionsConfiguration(),
- AssertionTransformation.PASSTHROUGH);
+ AssertionsConfiguration::isPassthrough);
checkSingleForceClassAndPackageAssertion(
parse("--force-enable-assertions:ClassName", "--force-enable-assertions:PackageName...")
.getAssertionsConfiguration(),
- AssertionTransformation.ENABLE);
+ AssertionsConfiguration::isCompileTimeEnabled);
checkSingleForceClassAndPackageAssertion(
parse("--force-disable-assertions:ClassName", "--force-disable-assertions:PackageName...")
.getAssertionsConfiguration(),
- AssertionTransformation.DISABLE);
+ AssertionsConfiguration::isCompileTimeDisabled);
checkSingleForceClassAndPackageAssertion(
parse(
"--force-passthrough-assertions:ClassName",
"--force-passthrough-assertions:PackageName...")
.getAssertionsConfiguration(),
- AssertionTransformation.PASSTHROUGH);
+ AssertionsConfiguration::isPassthrough);
checkSingleForceAllAssertion(
parse("--force-assertions-handler:com.example.MyHandler.handler")
.getAssertionsConfiguration(),
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/EnumWithAssertionsDisabledStaticFieldTest.java b/src/test/java/com/android/tools/r8/enumunboxing/EnumWithAssertionsDisabledStaticFieldTest.java
index 2f2dbc3..9fcc1d0 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/EnumWithAssertionsDisabledStaticFieldTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/EnumWithAssertionsDisabledStaticFieldTest.java
@@ -6,12 +6,12 @@
import static org.junit.Assume.assumeTrue;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
import com.android.tools.r8.NeverClassInline;
import com.android.tools.r8.NeverInline;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestRunResult;
+import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.utils.BooleanUtils;
import java.util.List;
import org.junit.Test;
@@ -23,6 +23,12 @@
@RunWith(Parameterized.class)
public class EnumWithAssertionsDisabledStaticFieldTest extends TestBase {
+ private enum AssertionTransformation {
+ ENABLE,
+ DISABLE,
+ PASSTHROUGH
+ }
+
@Parameter(0)
public AssertionTransformation assertionTransformation;
@@ -52,7 +58,18 @@
inspector ->
inspector.assertUnboxed(EnumWithAssertionsDisabledStaticFieldEnumClass.class))
.addAssertionsConfiguration(
- builder -> builder.setTransformation(assertionTransformation).setScopeAll().build())
+ builder -> {
+ switch (assertionTransformation) {
+ case ENABLE:
+ return builder.setCompileTimeEnable().setScopeAll().build();
+ case DISABLE:
+ return builder.setCompileTimeDisable().setScopeAll().build();
+ case PASSTHROUGH:
+ return builder.setPassthrough().setScopeAll().build();
+ default:
+ throw new Unreachable();
+ }
+ })
.enableInliningAnnotations()
.enableNeverClassInliningAnnotations()
.setMinApi(parameters.getApiLevel())
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java
index 4d2837b..c205888 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionConfigurationKotlinTest.java
@@ -338,26 +338,26 @@
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
inspector -> checkAssertionCodeRemoved(inspector, false),
noAllAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
inspector -> checkAssertionCodeRemoved(inspector, true),
noAllAssertionsExpectedLines());
// Compile time enabling assertions gives assertions on Dalvik/Art.
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
inspector -> checkAssertionCodeEnabled(inspector, false),
allAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
if (useJvmAssertions) {
@@ -365,8 +365,10 @@
runD8Test(
builder ->
builder
- .addAssertionsConfiguration(b -> b.setEnable().setScopeClass(class1).build())
- .addAssertionsConfiguration(b -> b.setEnable().setScopeClass(class2).build()),
+ .addAssertionsConfiguration(
+ b -> b.setCompileTimeEnable().setScopeClass(class1).build())
+ .addAssertionsConfiguration(
+ b -> b.setCompileTimeEnable().setScopeClass(class2).build()),
inspector -> {
// The default is applied to kotlin._Assertions (which for DEX is remove).
if (!kotlinStdlibAsLibrary) {
@@ -381,7 +383,7 @@
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopeClass("kotlin._Assertions").build()),
+ b -> b.setCompileTimeEnable().setScopeClass("kotlin._Assertions").build()),
inspector -> checkAssertionCodeEnabled(inspector, false),
allAssertionsExpectedLines());
}
@@ -390,8 +392,10 @@
runR8Test(
builder ->
builder
- .addAssertionsConfiguration(b -> b.setEnable().setScopeClass(class1).build())
- .addAssertionsConfiguration(b -> b.setEnable().setScopeClass(class2).build()),
+ .addAssertionsConfiguration(
+ b -> b.setCompileTimeEnable().setScopeClass(class1).build())
+ .addAssertionsConfiguration(
+ b -> b.setCompileTimeEnable().setScopeClass(class2).build()),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
} else {
@@ -399,7 +403,7 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopeClass("kotlin._Assertions").build()),
+ b -> b.setCompileTimeEnable().setScopeClass("kotlin._Assertions").build()),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
}
@@ -408,7 +412,7 @@
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage(kotlintestclasesPackage).build()),
+ b -> b.setCompileTimeEnable().setScopePackage(kotlintestclasesPackage).build()),
inspector -> {
// The default is applied to kotlin._Assertions (which for DEX is remove).
if (!kotlinStdlibAsLibrary) {
@@ -423,7 +427,7 @@
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage("kotlin").build()),
+ b -> b.setCompileTimeEnable().setScopePackage("kotlin").build()),
inspector -> checkAssertionCodeEnabled(inspector, false),
allAssertionsExpectedLines());
}
@@ -432,7 +436,7 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage(kotlintestclasesPackage).build()),
+ b -> b.setCompileTimeEnable().setScopePackage(kotlintestclasesPackage).build()),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
} else {
@@ -440,7 +444,7 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage("kotlin").build()),
+ b -> b.setCompileTimeEnable().setScopePackage("kotlin").build()),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
}
@@ -454,13 +458,15 @@
// Compile time enabling or disabling assertions means the -ea flag has no effect.
runR8Test(
builder -> {
- builder.addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions);
+ builder.addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions);
},
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
runR8Test(
builder -> {
- builder.addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions);
+ builder.addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions);
},
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines(),
@@ -493,13 +499,13 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
inspector -> checkAssertionCodeEnabled(inspector, true),
allAssertionsExpectedLines(),
true);
@@ -511,13 +517,13 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
inspector -> checkAssertionCodeRemoved(inspector, true),
noAllAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
inspector -> checkAssertionCodeRemoved(inspector, true),
noAllAssertionsExpectedLines(),
true);
@@ -539,7 +545,7 @@
.addProgramClassFileData(dumpModifiedKotlinAssertions())
.addProgramFiles(compiledForAssertions.getForConfiguration(kotlinc, targetVersion))
.setMinApi(parameters.getApiLevel())
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+ .addAssertionsConfiguration(AssertionsConfiguration.Builder::compileTimeEnableAllAssertions)
.run(
parameters.getRuntime(),
getClass().getPackage().getName() + ".kotlintestclasses.TestClassKt")
@@ -548,7 +554,8 @@
.addProgramClassFileData(dumpModifiedKotlinAssertions())
.addProgramFiles(compiledForAssertions.getForConfiguration(kotlinc, targetVersion))
.setMinApi(parameters.getApiLevel())
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::disableAllAssertions)
+ .addAssertionsConfiguration(
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions)
.run(
parameters.getRuntime(),
getClass().getPackage().getName() + ".kotlintestclasses.TestClassKt")
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationJacocoTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationJacocoTest.java
index f860ca2..28b41bd 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationJacocoTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationJacocoTest.java
@@ -52,7 +52,7 @@
.addProgramClasses(TestClass.class, MockJacocoInit.class)
.addProgramClassFileData(transformClassWithJacocoInstrumentation(A.class))
.setMinApi(parameters.getApiLevel())
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+ .addAssertionsConfiguration(AssertionsConfiguration.Builder::compileTimeEnableAllAssertions)
.run(parameters.getRuntime(), TestClass.class)
.inspect(this::checkAssertionCodeEnabled)
.assertSuccessWithOutputLines("AssertionError in A");
@@ -66,7 +66,7 @@
.addKeepMainRule(TestClass.class)
.addKeepClassAndMembersRules(A.class, MockJacocoInit.class)
.setMinApi(parameters.getApiLevel())
- .addAssertionsConfiguration(AssertionsConfiguration.Builder::enableAllAssertions)
+ .addAssertionsConfiguration(AssertionsConfiguration.Builder::compileTimeEnableAllAssertions)
.run(parameters.getRuntime(), TestClass.class)
.inspect(this::checkAssertionCodeEnabled)
.assertSuccessWithOutputLines("AssertionError in A");
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationTest.java
index 064cfdb..9ba3328 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/AssertionsConfigurationTest.java
@@ -202,39 +202,39 @@
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
this::checkAssertionCodeRemoved,
noAllAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
this::checkAssertionCodeRemoved,
noAllAssertionsExpectedLines());
// Compile time enabling assertions gives assertions on Dalvik/Art.
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
this::checkAssertionCodeEnabled,
allAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
this::checkAssertionCodeEnabled,
allAssertionsExpectedLines());
// Enabling for the package should enable all.
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage(packageName).build()),
+ b -> b.setCompileTimeEnable().setScopePackage(packageName).build()),
this::checkAssertionCodeEnabled,
allAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage(packageName).build()),
+ b -> b.setCompileTimeEnable().setScopePackage(packageName).build()),
this::checkAssertionCodeEnabled,
allAssertionsExpectedLines());
}
@@ -260,26 +260,26 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
this::checkAssertionCodeEnabled,
allAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::enableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeEnableAllAssertions),
this::checkAssertionCodeEnabled,
allAssertionsExpectedLines(),
true);
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
this::checkAssertionCodeRemoved,
noAllAssertionsExpectedLines());
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- AssertionsConfiguration.Builder::disableAllAssertions),
+ AssertionsConfiguration.Builder::compileTimeDisableAllAssertions),
this::checkAssertionCodeRemoved,
noAllAssertionsExpectedLines(),
true);
@@ -291,7 +291,7 @@
runD8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage(subPackageName).build()),
+ b -> b.setCompileTimeEnable().setScopePackage(subPackageName).build()),
inspector -> {
checkAssertionCodeEnabled(inspector, subpackageClass1);
checkAssertionCodeEnabled(inspector, subpackageClass2);
@@ -303,7 +303,7 @@
runR8Test(
builder ->
builder.addAssertionsConfiguration(
- b -> b.setEnable().setScopePackage(subPackageName).build()),
+ b -> b.setCompileTimeEnable().setScopePackage(subPackageName).build()),
inspector -> {
checkAssertionCodeEnabled(inspector, subpackageClass1);
checkAssertionCodeEnabled(inspector, subpackageClass2);
@@ -321,9 +321,12 @@
builder ->
builder
.addAssertionsConfiguration(
- b -> b.setEnable().setScopeClass(class1.getCanonicalName()).build())
+ b -> b.setCompileTimeEnable().setScopeClass(class1.getCanonicalName()).build())
.addAssertionsConfiguration(
- b -> b.setEnable().setScopeClass(subpackageClass2.getCanonicalName()).build()),
+ b ->
+ b.setCompileTimeEnable()
+ .setScopeClass(subpackageClass2.getCanonicalName())
+ .build()),
inspector -> {
checkAssertionCodeEnabled(inspector, class1);
checkAssertionCodeEnabled(inspector, subpackageClass2);
@@ -336,9 +339,12 @@
builder ->
builder
.addAssertionsConfiguration(
- b -> b.setEnable().setScopeClass(class1.getCanonicalName()).build())
+ b -> b.setCompileTimeEnable().setScopeClass(class1.getCanonicalName()).build())
.addAssertionsConfiguration(
- b -> b.setEnable().setScopeClass(subpackageClass2.getCanonicalName()).build()),
+ b ->
+ b.setCompileTimeEnable()
+ .setScopeClass(subpackageClass2.getCanonicalName())
+ .build()),
inspector -> {
checkAssertionCodeEnabled(inspector, class1);
checkAssertionCodeEnabled(inspector, subpackageClass2);
@@ -355,11 +361,15 @@
runD8Test(
builder ->
builder
- .addAssertionsConfiguration(b -> b.setEnable().setScopePackage(packageName).build())
.addAssertionsConfiguration(
- b -> b.setDisable().setScopeClass(class2.getCanonicalName()).build())
+ b -> b.setCompileTimeEnable().setScopePackage(packageName).build())
.addAssertionsConfiguration(
- b -> b.setDisable().setScopeClass(subpackageClass1.getCanonicalName()).build()),
+ b -> b.setCompileTimeDisable().setScopeClass(class2.getCanonicalName()).build())
+ .addAssertionsConfiguration(
+ b ->
+ b.setCompileTimeDisable()
+ .setScopeClass(subpackageClass1.getCanonicalName())
+ .build()),
inspector -> {
checkAssertionCodeEnabled(inspector, class1);
checkAssertionCodeRemoved(inspector, class2);
@@ -373,11 +383,15 @@
runR8Test(
builder ->
builder
- .addAssertionsConfiguration(b -> b.setEnable().setScopePackage(packageName).build())
.addAssertionsConfiguration(
- b -> b.setDisable().setScopeClass(class2.getCanonicalName()).build())
+ b -> b.setCompileTimeEnable().setScopePackage(packageName).build())
.addAssertionsConfiguration(
- b -> b.setDisable().setScopeClass(subpackageClass1.getCanonicalName()).build()),
+ b -> b.setCompileTimeDisable().setScopeClass(class2.getCanonicalName()).build())
+ .addAssertionsConfiguration(
+ b ->
+ b.setCompileTimeDisable()
+ .setScopeClass(subpackageClass1.getCanonicalName())
+ .build()),
inspector -> {
checkAssertionCodeEnabled(inspector, class1);
checkAssertionCodeRemoved(inspector, class2);
@@ -400,7 +414,8 @@
classInUnnamedPackage("Class1"),
classInUnnamedPackage("Class2"))
.setMinApi(parameters.getApiLevel())
- .addAssertionsConfiguration(builder -> builder.setEnable().setScopePackage("").build())
+ .addAssertionsConfiguration(
+ builder -> builder.setCompileTimeEnable().setScopePackage("").build())
.compile()
.inspect(
inspector -> {
@@ -449,7 +464,7 @@
.addAssertionsConfiguration(
builder ->
builder
- .setEnable()
+ .setCompileTimeEnable()
.setScopeClass(TestClassForInnerClass.class.getCanonicalName())
.build())
.compile()
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
index adeb90f..837b449 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
@@ -8,7 +8,7 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
-import com.android.tools.r8.AssertionsConfiguration.AssertionTransformation;
+import com.android.tools.r8.AssertionsConfiguration;
import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.D8TestCompileResult;
import com.android.tools.r8.R8TestCompileResult;
@@ -195,15 +195,15 @@
.compile();
}
- private static R8TestCompileResult compileCf(AssertionTransformation transformation)
+ private static R8TestCompileResult compileCf(
+ Function<AssertionsConfiguration.Builder, AssertionsConfiguration> transformation)
throws CompilationFailedException {
return testForR8(staticTemp, Backend.CF)
.addProgramClasses(ClassWithAssertions.class)
.debug()
.noTreeShaking()
.noMinification()
- .addAssertionsConfiguration(
- builder -> builder.setTransformation(transformation).setScopeAll().build())
+ .addAssertionsConfiguration(transformation)
.compile();
}
@@ -237,9 +237,9 @@
if (backend == Backend.CF) {
return new CompilationResults(
withAccess,
- compileCf(AssertionTransformation.PASSTHROUGH),
- compileCf(AssertionTransformation.DISABLE),
- compileCf(AssertionTransformation.ENABLE));
+ compileCf(builder -> builder.setPassthrough().setScopeAll().build()),
+ compileCf(builder -> builder.setCompileTimeDisable().setScopeAll().build()),
+ compileCf(builder -> builder.setCompileTimeEnable().setScopeAll().build()));
}
return new CompilationResults(
withAccess,
@@ -335,18 +335,19 @@
checkResultWithChromiumAssertions(results.withAssertions);
}
- private D8TestCompileResult compileD8(AssertionTransformation transformation)
+ private D8TestCompileResult compileD8(
+ Function<AssertionsConfiguration.Builder, AssertionsConfiguration> transformation)
throws CompilationFailedException {
return testForD8()
.addProgramClasses(ClassWithAssertions.class)
.debug()
.setMinApi(minApi)
- .addAssertionsConfiguration(
- builder -> builder.setTransformation(transformation).setScopeAll().build())
+ .addAssertionsConfiguration(transformation)
.compile();
}
- private D8TestCompileResult compileR8FollowedByD8(AssertionTransformation transformation)
+ private D8TestCompileResult compileR8FollowedByD8(
+ Function<AssertionsConfiguration.Builder, AssertionsConfiguration> transformation)
throws Exception {
Path program =
testForR8(Backend.CF)
@@ -362,17 +363,19 @@
.addProgramFiles(program)
.debug()
.setMinApi(minApi)
- .addAssertionsConfiguration(
- builder -> builder.setTransformation(transformation).setScopeAll().build())
+ .addAssertionsConfiguration(transformation)
.compile();
}
@Test
public void testD8() throws Exception {
assumeTrue(parameters.isDexRuntime());
- checkResultWithAssertionsInactive(compileD8(AssertionTransformation.DISABLE));
- checkResultWithAssertionsInactive(compileD8(AssertionTransformation.PASSTHROUGH));
- checkResultWithAssertionsEnabledAtCompileTime(compileD8(AssertionTransformation.ENABLE));
+ checkResultWithAssertionsInactive(
+ compileD8(builder -> builder.setCompileTimeDisable().setScopeAll().build()));
+ checkResultWithAssertionsInactive(
+ compileD8(builder -> builder.setPassthrough().setScopeAll().build()));
+ checkResultWithAssertionsEnabledAtCompileTime(
+ compileD8(builder -> builder.setCompileTimeEnable().setScopeAll().build()));
}
private D8TestCompileResult compileD8Regress110887293(Function<byte[], byte[]> rewriter)
@@ -396,9 +399,11 @@
@Test
public void testR8FollowedByD8() throws Exception {
assumeTrue(parameters.isDexRuntime());
- checkResultWithAssertionsInactive(compileR8FollowedByD8(AssertionTransformation.DISABLE));
- checkResultWithAssertionsInactive(compileR8FollowedByD8(AssertionTransformation.PASSTHROUGH));
+ checkResultWithAssertionsInactive(
+ compileR8FollowedByD8(builder -> builder.setCompileTimeDisable().setScopeAll().build()));
+ checkResultWithAssertionsInactive(
+ compileR8FollowedByD8(builder -> builder.setPassthrough().setScopeAll().build()));
checkResultWithAssertionsEnabledAtCompileTime(
- compileR8FollowedByD8(AssertionTransformation.ENABLE));
+ compileR8FollowedByD8(builder -> builder.setCompileTimeEnable().setScopeAll().build()));
}
}
diff --git a/tests/r8_api_usage_sample.jar b/tests/r8_api_usage_sample.jar
index 65070f5..61fd5f8 100644
--- a/tests/r8_api_usage_sample.jar
+++ b/tests/r8_api_usage_sample.jar
Binary files differ