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