Fix record rewriting with repacking without obfuscation

Fixes: b/299446046
Change-Id: If3a8676bb49636641ccf9691400e05a0fd3fbe8d
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 3b492ed..1f751b2 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -761,14 +761,11 @@
         timing.begin("Minification");
         appView.setNamingLens(new Minifier(appView.withLiveness()).run(executorService, timing));
         timing.end();
-      }
-      appView.appInfo().notifyMinifierFinished();
-
-      if (!options.isMinifying()
-          && appView.appInfo().app().getFlags().hasReadRecordReferenceFromProgramClass()) {
+      } else {
         new Minifier(appView.withLiveness())
             .replaceDexItemBasedConstString(executorService, timing);
       }
+      appView.appInfo().notifyMinifierFinished();
 
       assert verifyMovedMethodsHaveOriginalMethodPosition(appView, getDirectApp(appView));
 
diff --git a/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java b/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java
index fce5c53..e3affd7 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java
@@ -23,7 +23,6 @@
 import com.android.tools.r8.graph.DexValue.DexValueString;
 import com.android.tools.r8.graph.ProgramMethod;
 import com.android.tools.r8.ir.desugar.records.RecordCfToCfRewriter;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
 import com.android.tools.r8.shaking.ProguardClassFilter;
 import com.android.tools.r8.utils.ArrayUtils;
 import com.android.tools.r8.utils.DescriptorUtils;
@@ -39,12 +38,12 @@
  */
 class IdentifierMinifier {
 
-  private final AppView<AppInfoWithLiveness> appView;
+  private final AppView<?> appView;
   private final ProguardClassFilter adaptClassStrings;
   private final RecordCfToCfRewriter recordCfToCfRewriter;
   private final NamingLens lens;
 
-  IdentifierMinifier(AppView<AppInfoWithLiveness> appView, NamingLens lens) {
+  IdentifierMinifier(AppView<?> appView, NamingLens lens) {
     this.appView = appView;
     this.adaptClassStrings = appView.options().getProguardConfiguration().getAdaptClassStrings();
     this.recordCfToCfRewriter = RecordCfToCfRewriter.create(appView);
diff --git a/src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java b/src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java
index 862728b..88bb9a8 100644
--- a/src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/records/EmptyRecordTest.java
@@ -4,11 +4,9 @@
 
 package com.android.tools.r8.desugar.records;
 
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeFalse;
 import static org.junit.Assume.assumeTrue;
 
-import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestRuntime.CfVm;
@@ -76,32 +74,25 @@
 
   @Test
   public void testR8() throws Exception {
-    try {
-      // TODO(b/288360309): Correctly deal with non-identity lenses in R8 record rewriting.
-      assumeTrue(parameters.isDexRuntime());
-      parameters.assumeR8TestParameters();
-      testForR8(parameters.getBackend())
-          .addProgramClassFileData(PROGRAM_DATA)
-          .addKeepMainRule(MAIN_TYPE)
-          .applyIf(
-              parameters.isCfRuntime(),
-              testBuilder ->
-                  testBuilder.addLibraryFiles(RecordTestUtils.getJdk15LibraryFiles(temp)))
-          .minification(enableMinification)
-          .applyIf(enableRepackaging, b -> b.addKeepRules("-repackageclasses p"))
-          .setMinApi(parameters)
-          .compile()
-          .applyIf(
-              parameters.isCfRuntime(),
-              compileResult -> compileResult.inspect(RecordTestUtils::assertRecordsAreRecords))
-          .run(parameters.getRuntime(), MAIN_TYPE)
-          .assertSuccessWithOutput(
-              enableMinification
-                  ? EXPECTED_RESULT_R8_MINIFICATION
-                  : EXPECTED_RESULT_R8_NO_MINIFICATION);
-      assertTrue(!enableRepackaging || enableMinification);
-    } catch (CompilationFailedException e) {
-      assertTrue(enableRepackaging && !enableMinification);
-    }
+    assumeTrue(parameters.isDexRuntime());
+    parameters.assumeR8TestParameters();
+    testForR8(parameters.getBackend())
+        .addProgramClassFileData(PROGRAM_DATA)
+        .addKeepMainRule(MAIN_TYPE)
+        .applyIf(
+            parameters.isCfRuntime(),
+            testBuilder -> testBuilder.addLibraryFiles(RecordTestUtils.getJdk15LibraryFiles(temp)))
+        .minification(enableMinification)
+        .applyIf(enableRepackaging, b -> b.addKeepRules("-repackageclasses p"))
+        .setMinApi(parameters)
+        .compile()
+        .applyIf(
+            parameters.isCfRuntime(),
+            compileResult -> compileResult.inspect(RecordTestUtils::assertRecordsAreRecords))
+        .run(parameters.getRuntime(), MAIN_TYPE)
+        .assertSuccessWithOutput(
+            enableMinification
+                ? EXPECTED_RESULT_R8_MINIFICATION
+                : EXPECTED_RESULT_R8_NO_MINIFICATION);
   }
 }