Enable check-cast rewriting in horizontal class merger

Change-Id: I52876c2da79d3c4a32bc23ed44c551545efcd9b6
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoDirectRuntimeTypeChecks.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoDirectRuntimeTypeChecks.java
index 3507dfa..cba8299 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoDirectRuntimeTypeChecks.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoDirectRuntimeTypeChecks.java
@@ -9,11 +9,9 @@
 import com.android.tools.r8.horizontalclassmerging.SingleClassPolicy;
 import com.android.tools.r8.shaking.RuntimeTypeCheckInfo;
 import com.android.tools.r8.synthesis.SyntheticItems;
-import com.android.tools.r8.utils.InternalOptions.HorizontalClassMergerOptions;
 
 public class NoDirectRuntimeTypeChecks extends SingleClassPolicy {
 
-  private final HorizontalClassMergerOptions options;
   private final RuntimeTypeCheckInfo runtimeTypeCheckInfo;
   private final SyntheticItems syntheticItems;
 
@@ -22,7 +20,6 @@
   }
 
   public NoDirectRuntimeTypeChecks(AppView<?> appView, RuntimeTypeCheckInfo runtimeTypeCheckInfo) {
-    this.options = appView.options().horizontalClassMergerOptions();
     this.runtimeTypeCheckInfo = runtimeTypeCheckInfo;
     this.syntheticItems = appView.getSyntheticItems();
   }
@@ -34,7 +31,7 @@
           : "Expected synthetic, got: " + clazz.getTypeName();
       return true;
     }
-    if (clazz.isInterface() || !options.enableCheckCastRewriting) {
+    if (clazz.isInterface()) {
       // We cannot rewrite runtime type checks to classId comparisons, since we cannot add instance
       // fields to interfaces.
       return !runtimeTypeCheckInfo.isRuntimeCheckType(clazz);
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index f469bf4..db6c411 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -2092,9 +2092,6 @@
             "com.android.tools.r8.enableSameFilePolicy", false);
     private boolean enableSyntheticMerging = true;
 
-    // TODO(b/418674622): Enable check-cast-rewriting.
-    public boolean enableCheckCastRewriting = false;
-
     // Used in tests to enable horizontal class merging when compiling to class files.
     public void enableForTesting() {
       disable = OptionalBool.FALSE;
diff --git a/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java
index 28881a6..3651780 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -93,8 +93,6 @@
             options.testing.forcePruneMetaInfManifestMf = true;
             options.horizontalClassMergerOptions().enableForTesting();
             options.horizontalClassMergerOptions().setEnableInterfaceMerging();
-            assert !options.horizontalClassMergerOptions().enableCheckCastRewriting;
-            options.horizontalClassMergerOptions().enableCheckCastRewriting = true;
             options
                 .getCfCodeAnalysisOptions()
                 .setAllowUnreachableCfBlocks(false)