Revert recent changes to update Kotlin metadata

Still failures on the bots.

Revert "Remove dead supertype in kotlin metadata."
This reverts commit 6bb0c532984c05ad74dd97c60ce7f2616a108366.

Revert "Add a unified way to remove kotlin metadata from renamed classes."
This reverts commit df71f23720081c3a932dcadf2bc5c3a551f4f396.

Bug: 143687784, 70169921
Change-Id: Ic1ab551fd2a5b15656134c4a706b8ce92ea73948
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClass.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClass.java
index a83c407..92ba6a0 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClass.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClass.java
@@ -4,22 +4,11 @@
 
 package com.android.tools.r8.kotlin;
 
-import com.android.tools.r8.graph.AppView;
 import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import com.android.tools.r8.utils.Box;
-import com.android.tools.r8.utils.DescriptorUtils;
-import kotlinx.metadata.KmClass;
-import kotlinx.metadata.KmTypeVisitor;
-import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 
 public class KotlinClass extends KotlinInfo<KotlinClassMetadata.Class> {
 
-  private KmClass kmClass;
-
   static KotlinClass fromKotlinClassMetadata(
       KotlinClassMetadata kotlinClassMetadata, DexClass clazz) {
     assert kotlinClassMetadata instanceof KotlinClassMetadata.Class;
@@ -35,35 +24,7 @@
   void processMetadata() {
     assert !isProcessed;
     isProcessed = true;
-    kmClass = metadata.toKmClass();
-  }
-
-  @Override
-  void rewrite(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
-    kmClass.getSupertypes().removeIf(
-        kmType -> {
-          Box<Boolean> isLive = new Box<>(false);
-          kmType.accept(new KmTypeVisitor() {
-            @Override
-            public void visitClass(String name) {
-              String descriptor = DescriptorUtils.javaTypeToDescriptorIfValidJavaType(name);
-              if (descriptor != null) {
-                DexType type = appView.dexItemFactory().createType(name);
-                DexType renamedType = lens.lookupType(type, appView.dexItemFactory());
-                isLive.set(appView.appInfo().isLiveProgramType(renamedType));
-              }
-            }
-          });
-          return !isLive.get();
-        }
-    );
-  }
-
-  @Override
-  KotlinClassHeader createHeader() {
-    KotlinClassMetadata.Class.Writer writer = new KotlinClassMetadata.Class.Writer();
-    kmClass.accept(writer);
-    return writer.write().getHeader();
+    // TODO(b/70169921): once migration is complete, use #toKmClass and store a mutable model.
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassFacade.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassFacade.java
index 6429a50..0bd545c 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassFacade.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassFacade.java
@@ -4,11 +4,6 @@
 
 package com.android.tools.r8.kotlin;
 
-import com.android.tools.r8.errors.Unreachable;
-import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 
 public final class KotlinClassFacade extends KotlinInfo<KotlinClassMetadata.MultiFileClassFacade> {
@@ -32,16 +27,6 @@
   }
 
   @Override
-  void rewrite(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
-    throw new Unreachable(toString());
-  }
-
-  @Override
-  KotlinClassHeader createHeader() {
-    throw new Unreachable(toString());
-  }
-
-  @Override
   public Kind getKind() {
     return Kind.Facade;
   }
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
index dc3161c..6004201 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassMetadataReader.java
@@ -79,11 +79,11 @@
     if (kMetadata instanceof KotlinClassMetadata.Class) {
       return KotlinClass.fromKotlinClassMetadata(kMetadata, clazz);
     } else if (kMetadata instanceof KotlinClassMetadata.FileFacade) {
-      return KotlinFile.fromKotlinClassMetadata(kMetadata, clazz);
+      return KotlinFile.fromKotlinClassMetadata(kMetadata);
     } else if (kMetadata instanceof KotlinClassMetadata.MultiFileClassFacade) {
       return KotlinClassFacade.fromKotlinClassMetadata(kMetadata);
     } else if (kMetadata instanceof KotlinClassMetadata.MultiFileClassPart) {
-      return KotlinClassPart.fromKotlinClassMetadata(kMetadata);
+      return KotlinClassPart.fromKotlinClassMetdata(kMetadata);
     } else if (kMetadata instanceof KotlinClassMetadata.SyntheticClass) {
       return KotlinSyntheticClass.fromKotlinClassMetadata(kMetadata, kotlin, clazz);
     } else {
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinClassPart.java b/src/main/java/com/android/tools/r8/kotlin/KotlinClassPart.java
index 96c1022..1ae3db8 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinClassPart.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinClassPart.java
@@ -4,18 +4,11 @@
 
 package com.android.tools.r8.kotlin;
 
-import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import kotlinx.metadata.KmPackage;
-import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 
 public final class KotlinClassPart extends KotlinInfo<KotlinClassMetadata.MultiFileClassPart> {
 
-  private KmPackage kmPackage;
-
-  static KotlinClassPart fromKotlinClassMetadata(KotlinClassMetadata kotlinClassMetadata) {
+  static KotlinClassPart fromKotlinClassMetdata(KotlinClassMetadata kotlinClassMetadata) {
     assert kotlinClassMetadata instanceof KotlinClassMetadata.MultiFileClassPart;
     KotlinClassMetadata.MultiFileClassPart multiFileClassPart =
         (KotlinClassMetadata.MultiFileClassPart) kotlinClassMetadata;
@@ -30,20 +23,7 @@
   void processMetadata() {
     assert !isProcessed;
     isProcessed = true;
-    kmPackage = metadata.toKmPackage();
-  }
-
-  @Override
-  void rewrite(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
-    // TODO(b/70169921): no idea yet!
-    assert lens.lookupType(clazz.type, appView.dexItemFactory()) == clazz.type
-        : toString();
-  }
-
-  @Override
-  KotlinClassHeader createHeader() {
-    // TODO(b/70169921): may need to update if `rewrite` is implemented.
-    return metadata.getHeader();
+    // TODO(b/70169921): once migration is complete, use #toKmPackage and store a mutable model.
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinFile.java b/src/main/java/com/android/tools/r8/kotlin/KotlinFile.java
index e2bb332..c22dcdb 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinFile.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinFile.java
@@ -4,48 +4,26 @@
 
 package com.android.tools.r8.kotlin;
 
-import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import kotlinx.metadata.KmPackage;
-import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 
 public final class KotlinFile extends KotlinInfo<KotlinClassMetadata.FileFacade> {
 
-  private KmPackage kmPackage;
-
-  static KotlinFile fromKotlinClassMetadata(
-      KotlinClassMetadata kotlinClassMetadata, DexClass clazz) {
+  static KotlinFile fromKotlinClassMetadata(KotlinClassMetadata kotlinClassMetadata) {
     assert kotlinClassMetadata instanceof KotlinClassMetadata.FileFacade;
     KotlinClassMetadata.FileFacade fileFacade =
         (KotlinClassMetadata.FileFacade) kotlinClassMetadata;
-    return new KotlinFile(fileFacade, clazz);
+    return new KotlinFile(fileFacade);
   }
 
-  private KotlinFile(KotlinClassMetadata.FileFacade metadata, DexClass clazz) {
-    super(metadata, clazz);
+  private KotlinFile(KotlinClassMetadata.FileFacade metadata) {
+    super(metadata);
   }
 
   @Override
   void processMetadata() {
     assert !isProcessed;
     isProcessed = true;
-    kmPackage = metadata.toKmPackage();
-  }
-
-  @Override
-  void rewrite(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
-    // TODO(b/70169921): no idea yet!
-    assert lens.lookupType(clazz.type, appView.dexItemFactory()) == clazz.type
-        : toString();
-  }
-
-  @Override
-  KotlinClassHeader createHeader() {
-    // TODO(b/70169921): may need to update if `rewrite` is implemented.
-    return metadata.getHeader();
+    // TODO(b/70169921): once migration is complete, use #toKmPackage and store a mutable model.
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java
index ac69eff..6603357 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinInfo.java
@@ -4,11 +4,7 @@
 
 package com.android.tools.r8.kotlin;
 
-import com.android.tools.r8.graph.AppView;
 import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 
 // Provides access to kotlin information.
@@ -24,17 +20,11 @@
   KotlinInfo(MetadataKind metadata, DexClass clazz) {
     this.metadata = metadata;
     this.clazz = clazz;
-    processMetadata();
   }
 
   // Subtypes will define how to process the given metadata.
   abstract void processMetadata();
 
-  // Subtypes will define how to rewrite metadata after shrinking and minification.
-  abstract void rewrite(AppView<AppInfoWithLiveness> appView, NamingLens lens);
-
-  abstract KotlinClassHeader createHeader();
-
   public enum Kind {
     Class, File, Synthetic, Part, Facade
   }
@@ -80,9 +70,4 @@
   public KotlinClassFacade asClassFacade() {
     return null;
   }
-
-  @Override
-  public String toString() {
-    return clazz.toSourceString() + ": " + metadata.toString();
-  }
 }
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
deleted file mode 100644
index bf03584..0000000
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
+++ /dev/null
@@ -1,133 +0,0 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.kotlin;
-
-import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.graph.DexAnnotation;
-import com.android.tools.r8.graph.DexAnnotationElement;
-import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.graph.DexEncodedAnnotation;
-import com.android.tools.r8.graph.DexItemFactory;
-import com.android.tools.r8.graph.DexValue;
-import com.android.tools.r8.graph.DexValue.DexValueArray;
-import com.android.tools.r8.graph.DexValue.DexValueInt;
-import com.android.tools.r8.graph.DexValue.DexValueString;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import com.android.tools.r8.utils.ThreadUtils;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import kotlinx.metadata.jvm.KotlinClassHeader;
-
-public class KotlinMetadataRewriter {
-
-  private final AppView<AppInfoWithLiveness> appView;
-  private final NamingLens lens;
-  private final DexItemFactory factory;
-  private final Kotlin kotlin;
-
-  public KotlinMetadataRewriter(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
-    this.appView = appView;
-    this.lens = lens;
-    this.factory = appView.dexItemFactory();
-    this.kotlin = factory.kotlin;
-  }
-
-  public static void removeKotlinMetadataFromRenamedClass(AppView<?> appView, DexClass clazz) {
-    // Remove @Metadata in DexAnnotation form if a class is renamed.
-    clazz.annotations = clazz.annotations.keepIf(anno -> isNotKotlinMetadata(appView, anno));
-    // Clear associated {@link KotlinInfo} to avoid accidentally deserialize it back to
-    // DexAnnotation we've just removed above.
-    if (clazz.isProgramClass()) {
-      clazz.asProgramClass().setKotlinInfo(null);
-    }
-  }
-
-  private static boolean isNotKotlinMetadata(AppView<?> appView, DexAnnotation annotation) {
-    return annotation.annotation.type
-        != appView.dexItemFactory().kotlin.metadata.kotlinMetadataType;
-  }
-
-  public void run(ExecutorService executorService) throws ExecutionException {
-    ThreadUtils.processItems(
-        appView.appInfo().classes(),
-        clazz -> {
-          KotlinInfo<?> kotlinInfo = clazz.getKotlinInfo();
-          if (kotlinInfo != null) {
-            assert kotlinInfo.isClass()
-                || kotlinInfo.isSyntheticClass()
-                || kotlinInfo.isFile(); // e.g., B.kt becomes class `BKt`
-            // If @Metadata is still associated, this class should not be renamed
-            // (by {@link ClassNameMinifier} of course).
-            assert lens.lookupType(clazz.type, appView.dexItemFactory()) == clazz.type
-                : clazz.toSourceString() + " != "
-                    + lens.lookupType(clazz.type, appView.dexItemFactory());
-
-            DexAnnotation oldMeta =
-                clazz.annotations.getFirstMatching(kotlin.metadata.kotlinMetadataType);
-            // If @Metadata is already gone, e.g., by {@link AnnotationRemover} if type Metadata is
-            // determined as dead (e.g., due to no keep rule), nothing to do.
-            if (oldMeta == null) {
-              return;
-            }
-
-            kotlinInfo.rewrite(appView, lens);
-
-            DexAnnotation newMeta = createKotlinMetadataAnnotation(kotlinInfo.createHeader());
-            clazz.annotations = clazz.annotations.rewrite(anno -> anno == oldMeta ? newMeta : anno);
-          }
-        },
-        executorService
-    );
-  }
-
-  private DexAnnotation createKotlinMetadataAnnotation(KotlinClassHeader header) {
-    List<DexAnnotationElement> elements = new ArrayList<>();
-    elements.add(
-        new DexAnnotationElement(kotlin.metadata.kind, DexValueInt.create(header.getKind())));
-    elements.add(
-        new DexAnnotationElement(
-            kotlin.metadata.metadataVersion, createIntArray(header.getMetadataVersion())));
-    elements.add(
-        new DexAnnotationElement(
-            kotlin.metadata.bytecodeVersion, createIntArray(header.getBytecodeVersion())));
-    elements.add(
-        new DexAnnotationElement(kotlin.metadata.data1, createStringArray(header.getData1())));
-    elements.add(
-        new DexAnnotationElement(kotlin.metadata.data2, createStringArray(header.getData2())));
-    elements.add(
-        new DexAnnotationElement(
-            kotlin.metadata.extraString,
-            new DexValueString(factory.createString(header.getExtraString()))));
-    elements.add(
-        new DexAnnotationElement(
-            kotlin.metadata.packageName,
-            new DexValueString(factory.createString(header.getPackageName()))));
-    elements.add(
-        new DexAnnotationElement(
-            kotlin.metadata.extraInt, DexValueInt.create(header.getExtraInt())));
-    DexEncodedAnnotation encodedAnnotation =
-        new DexEncodedAnnotation(
-            kotlin.metadata.kotlinMetadataType, elements.toArray(DexAnnotationElement.EMPTY_ARRAY));
-    return new DexAnnotation(DexAnnotation.VISIBILITY_RUNTIME, encodedAnnotation);
-  }
-
-  private DexValueArray createIntArray(int[] data) {
-    DexValue[] values = new DexValue[data.length];
-    for (int i = 0; i < data.length; i++) {
-      values[i] = DexValueInt.create(data[i]);
-    }
-    return new DexValueArray(values);
-  }
-
-  private DexValueArray createStringArray(String[] data) {
-    DexValue[] values = new DexValue[data.length];
-    for (int i = 0; i < data.length; i++) {
-      values[i] = new DexValueString(factory.createString(data[i]));
-    }
-    return new DexValueArray(values);
-  }
-}
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClass.java b/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClass.java
index e732d04..fa65464 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClass.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinSyntheticClass.java
@@ -4,11 +4,7 @@
 
 package com.android.tools.r8.kotlin;
 
-import com.android.tools.r8.graph.AppView;
 import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.naming.NamingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import kotlinx.metadata.jvm.KotlinClassHeader;
 import kotlinx.metadata.jvm.KotlinClassMetadata;
 
 public final class KotlinSyntheticClass extends KotlinInfo<KotlinClassMetadata.SyntheticClass> {
@@ -44,23 +40,10 @@
     assert !isProcessed;
     isProcessed = true;
     if (metadata.isLambda()) {
-      // TODO(b/70169921): Use #toKmLambda to store a mutable model if needed.
+      // TODO(b/70169921): once migration is complete, use #toKmLambda and store a mutable model.
     }
   }
 
-  @Override
-  void rewrite(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
-    // TODO(b/70169921): no idea yet!
-    assert lens.lookupType(clazz.type, appView.dexItemFactory()) == clazz.type
-        : toString();
-  }
-
-  @Override
-  KotlinClassHeader createHeader() {
-    // TODO(b/70169921): may need to update if `rewrite` is implemented.
-    return metadata.getHeader();
-  }
-
   public boolean isLambda() {
     return isKotlinStyleLambda() || isJavaStyleLambda();
   }
diff --git a/src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java b/src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
index b953376..ada50fa 100644
--- a/src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
@@ -10,6 +10,7 @@
 import static com.android.tools.r8.utils.DescriptorUtils.getPackageBinaryNameFromJavaType;
 
 import com.android.tools.r8.graph.AppView;
+import com.android.tools.r8.graph.DexAnnotation;
 import com.android.tools.r8.graph.DexClass;
 import com.android.tools.r8.graph.DexEncodedField;
 import com.android.tools.r8.graph.DexEncodedMethod;
@@ -17,7 +18,6 @@
 import com.android.tools.r8.graph.DexString;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.graph.InnerClassAttribute;
-import com.android.tools.r8.kotlin.KotlinMetadataRewriter;
 import com.android.tools.r8.naming.signature.GenericSignatureRewriter;
 import com.android.tools.r8.shaking.AppInfoWithLiveness;
 import com.android.tools.r8.shaking.ProguardPackageNameList;
@@ -110,24 +110,16 @@
     timing.begin("rename-classes");
     for (DexClass clazz : classes) {
       if (!renaming.containsKey(clazz.type)) {
+        clazz.annotations = clazz.annotations.keepIf(this::isNotKotlinMetadata);
         DexString renamed = computeName(clazz.type);
         renaming.put(clazz.type, renamed);
-        KotlinMetadataRewriter.removeKotlinMetadataFromRenamedClass(appView, clazz);
         // If the class is a member class and it has used $ separator, its renamed name should have
         // the same separator (as long as inner-class attribute is honored).
         assert !keepInnerClassStructure
             || !clazz.isMemberClass()
             || !clazz.type.getInternalName().contains(String.valueOf(INNER_CLASS_SEPARATOR))
             || renamed.toString().contains(String.valueOf(INNER_CLASS_SEPARATOR))
-            || classNamingStrategy.isRenamedByApplyMapping(clazz.type)
-                : clazz.toSourceString() + " -> " + renamed;
-      } else if (renaming.get(clazz.type) != clazz.type.descriptor) {
-        // This (outer) class could have been renamed to compute renamed prefix for inner classes.
-        assert !clazz.getInnerClasses().isEmpty()
-            // Or simply coming from -applymapping.
-            || classNamingStrategy.isRenamedByApplyMapping(clazz.type)
-                : clazz.toSourceString() + " -> " + renaming.get(clazz.type);
-        KotlinMetadataRewriter.removeKotlinMetadataFromRenamedClass(appView, clazz);
+            || classNamingStrategy.isRenamedByApplyMapping(clazz.type);
       }
     }
     timing.end();
@@ -450,4 +442,9 @@
     }
     return packagePrefix.substring(0, i);
   }
+
+  private boolean isNotKotlinMetadata(DexAnnotation annotation) {
+    return annotation.annotation.type
+        != appView.dexItemFactory().kotlin.metadata.kotlinMetadataType;
+  }
 }
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index eb3a614..8dfe02c 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -17,7 +17,6 @@
 import com.android.tools.r8.graph.DexMethod;
 import com.android.tools.r8.graph.DexString;
 import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.kotlin.KotlinMetadataRewriter;
 import com.android.tools.r8.naming.ClassNameMinifier.ClassNamingStrategy;
 import com.android.tools.r8.naming.ClassNameMinifier.ClassRenaming;
 import com.android.tools.r8.naming.ClassNameMinifier.PackageNamingStrategy;
@@ -88,11 +87,6 @@
     timing.begin("MinifyIdentifiers");
     new IdentifierMinifier(appView, lens).run(executorService);
     timing.end();
-
-    timing.begin("MinifyKotlinMetadata");
-    new KotlinMetadataRewriter(appView, lens).run(executorService);
-    timing.end();
-
     return lens;
   }
 
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
index 92df84f..8db8e01 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
@@ -17,7 +17,6 @@
 import com.android.tools.r8.graph.DexString;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.ir.desugar.InterfaceMethodRewriter;
-import com.android.tools.r8.kotlin.KotlinMetadataRewriter;
 import com.android.tools.r8.naming.ClassNameMinifier.ClassRenaming;
 import com.android.tools.r8.naming.FieldNameMinifier.FieldRenaming;
 import com.android.tools.r8.naming.MemberNaming.FieldSignature;
@@ -166,10 +165,6 @@
     new IdentifierMinifier(appView, lens).run(executorService);
     timing.end();
 
-    timing.begin("MinifyKotlinMetadata");
-    new KotlinMetadataRewriter(appView, lens).run(executorService);
-    timing.end();
-
     return lens;
   }
 
@@ -185,12 +180,9 @@
     Map<DexReference, MemberNaming> nonPrivateMembers = new IdentityHashMap<>();
 
     if (classNaming != null) {
-      // TODO(b/133091438) assert that !dexClass.isLibraryClass();
+      // TODO(b/133091438) assert that !dexClass.isLibaryClass();
       DexString mappedName = factory.createString(classNaming.renamedName);
       checkAndAddMappedNames(type, mappedName, classNaming.position);
-      if (dexClass != null) {
-        KotlinMetadataRewriter.removeKotlinMetadataFromRenamedClass(appView, dexClass);
-      }
 
       classNaming.forAllMemberNaming(
           memberNaming -> addMemberNamings(type, memberNaming, nonPrivateMembers, false));
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRenameTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRenameTest.java
index c7ba86e..7ca821f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRenameTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRenameTest.java
@@ -100,26 +100,26 @@
       // API entry is kept, hence the presence of Metadata.
       DexAnnotation metadata = retrieveMetadata(impl.getDexClass());
       assertNotNull(metadata);
-      assertThat(metadata.toString(), not(containsString("internal")));
-      assertThat(metadata.toString(), not(containsString("Itf")));
+      // TODO(b/143687784): test its metadata doesn't point to shrunken itf.
     });
 
     Path r8ProcessedLibZip = temp.newFile("r8-lib.zip").toPath();
     compileResult.writeToZip(r8ProcessedLibZip);
 
     String appFolder = PKG_PREFIX + "/supertype_app";
-    Path output =
+    ProcessResult kotlinTestCompileResult =
         kotlinc(parameters.getRuntime().asCf())
             .addClasspathFiles(r8ProcessedLibZip)
             .addSourceFiles(getKotlinFileInTest(appFolder, "main"))
+            // TODO(b/143687784): update to just .compile() once fixed.
             .setOutputPath(temp.newFolder().toPath())
-            .compile();
+            .compileRaw();
 
-    testForJvm()
-        .addRunClasspathFiles(ToolHelper.getKotlinStdlibJar(), r8ProcessedLibZip)
-        .addClasspath(output)
-        .run(parameters.getRuntime(), pkg + ".supertype_app.MainKt")
-        .assertSuccessWithOutputLines("Impl::foo", "Program::foo");
+    // TODO(b/143687784): should be able to compile!
+    assertNotEquals(0, kotlinTestCompileResult.exitCode);
+    assertThat(
+        kotlinTestCompileResult.stderr,
+        containsString("unresolved supertypes: " + pkg + ".supertype_lib.internal.Itf"));
   }
 
   @Test
@@ -150,7 +150,7 @@
       // API entry is kept, hence the presence of Metadata.
       DexAnnotation metadata = retrieveMetadata(impl.getDexClass());
       assertNotNull(metadata);
-      assertThat(metadata.toString(), not(containsString("Super")));
+      // TODO(b/143687784): test its metadata doesn't point to shrunken Super.
     });
 
     Path r8ProcessedLibZip = temp.newFile("r8-lib.zip").toPath();
@@ -166,6 +166,9 @@
             .compileRaw();
     // TODO(b/143687784): should be able to compile!
     assertNotEquals(0, kotlinTestCompileResult.exitCode);
+    assertThat(
+        kotlinTestCompileResult.stderr,
+        containsString("unresolved supertypes: " + pkg + ".extension_lib.Super"));
     assertThat(kotlinTestCompileResult.stderr, containsString("unresolved reference: doStuff"));
   }
 }