Reland "[Compose] Enable map composition by default"

This reverts commit 78c4768872292c8095fd6dc0ce3bd970687291eb.

Bug: b/241763080
Change-Id: I84481265bd61a59d71c7d7204a75f176783e3444
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index 35d22bb..d7cbd04 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -29,6 +29,7 @@
 import com.android.tools.r8.utils.InternalOptions.DesugarState;
 import com.android.tools.r8.utils.InternalOptions.HorizontalClassMergerOptions;
 import com.android.tools.r8.utils.InternalOptions.LineNumberOptimization;
+import com.android.tools.r8.utils.InternalOptions.MappingComposeOptions;
 import com.android.tools.r8.utils.ProgramClassCollection;
 import com.android.tools.r8.utils.Reporter;
 import com.android.tools.r8.utils.StringDiagnostic;
@@ -636,7 +637,8 @@
         !internal.debug && proguardMapConsumer != null
             ? LineNumberOptimization.ON
             : LineNumberOptimization.OFF;
-
+    MappingComposeOptions mappingComposeOptions = internal.mappingComposeOptions();
+    mappingComposeOptions.enableExperimentalMappingComposition = true;
     // Assert and fixup defaults.
     assert !internal.isShrinking();
     assert !internal.isMinifying();
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 335e328..d49f628 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1800,8 +1800,8 @@
   }
 
   public static class MappingComposeOptions {
-    // TODO(b/241763080): Remove when enabled.
     public boolean enableExperimentalMappingComposition = false;
+
     // TODO(b/247136434): Disable for internal builds.
     public boolean allowNonExistingOriginalRanges = true;
     public Consumer<ClassNameMapper> generatedClassNameMapperConsumer = null;
diff --git a/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java b/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java
index 1965667..b961f22 100644
--- a/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java
+++ b/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java
@@ -53,7 +53,8 @@
     if (appView.options().mappingComposeOptions().generatedClassNameMapperConsumer != null) {
       appView.options().mappingComposeOptions().generatedClassNameMapperConsumer.accept(mapper);
     }
-    if (appView.options().mappingComposeOptions().enableExperimentalMappingComposition) {
+    if (appView.options().mappingComposeOptions().enableExperimentalMappingComposition
+        && appView.appInfo().app().getProguardMap() != null) {
       timing.begin("Proguard map composition");
       try {
         mapper =
diff --git a/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java b/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java
index 367e1b6..861e990 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java
@@ -193,8 +193,6 @@
             .setMappingSupplier(
                 ProguardMappingSupplier.builder()
                     .setProguardMapProducer(ProguardMapProducer.fromPath(mappingFile))
-                    // TODO(b/241763080): Remove when stable.
-                    .setAllowExperimental(true)
                     .build())
             .build());
     return retracedLines;
@@ -246,8 +244,6 @@
         .addProgramFiles(r8Input)
         .addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
         .addKeepRuleFiles(MAIN_KEEP)
-        // TODO(b/241763080): Remove when stable version is default.
-        .enableExperimentalMapFileVersion()
         .allowUnusedProguardConfigurationRules()
         .addDontObfuscate()
         .compile()
@@ -264,10 +260,10 @@
         .setMode(CompilationMode.RELEASE)
         .addProgramFiles(r8Input)
         .addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
-        .enableExperimentalMapFileVersion()
-        // TODO(b/241763080): Enable CF PC test mapping for this compilation.
         .addOptionsModification(
-            options -> options.mappingComposeOptions().enableExperimentalMappingComposition = true)
+            options -> {
+              assertTrue(options.mappingComposeOptions().enableExperimentalMappingComposition);
+            })
         .apply(
             b ->
                 b.getBuilder()