diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineWrapperConverter.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineWrapperConverter.java
index e471367..5fef044 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineWrapperConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineWrapperConverter.java
@@ -49,7 +49,6 @@
     // processed before.
     LinkedHashMap<DexType, WrapperDescriptorBuilder> orderedDescriptors =
         orderDescriptors(descriptors);
-    clearIncompleteSubwrappers(orderedDescriptors, rewritingFlags.getWrapperConversions());
     finalizeWrapperDescriptors(orderedDescriptors, builder);
     warnConsumer.accept("The following types to wrap are missing: ", missingClasses);
     warnConsumer.accept(
@@ -57,22 +56,6 @@
         invalidMethods);
   }
 
-  private void clearIncompleteSubwrappers(
-      LinkedHashMap<DexType, WrapperDescriptorBuilder> orderedDescriptors,
-      Map<DexType, Set<DexMethod>> wrapperConversions) {
-    // If the wrapper is incomplete, it may lead to runtime errors.
-    // We never try to specialize the wrapper to an incomplete wrapper for this reason.
-    for (WrapperDescriptorBuilder descriptor : orderedDescriptors.values()) {
-      List<DexType> toRemove = new ArrayList<>();
-      for (DexType subwrapper : descriptor.getSubwrappers()) {
-        if (!wrapperConversions.get(subwrapper).isEmpty()) {
-          toRemove.add(subwrapper);
-        }
-      }
-      descriptor.removeSubwrappers(toRemove);
-    }
-  }
-
   private static class WrapperDescriptorBuilder {
     private final List<DexMethod> methods = new ArrayList<>();
     private final List<DexType> subwrappers = new ArrayList<>();
@@ -102,12 +85,6 @@
       return new WrapperDescriptor(
           ImmutableList.copyOf(methods), ImmutableList.copyOf(subwrappers), nonPublicAccess);
     }
-
-    public void removeSubwrappers(List<DexType> toRemove) {
-      if (!toRemove.isEmpty()) {
-        subwrappers.removeAll(toRemove);
-      }
-    }
   }
 
   private Map<DexType, WrapperDescriptorBuilder> initializeDescriptors(
