Fix incorrect source file when no map consumer is set

Bug: b/427244528
Change-Id: Ia94c7597b272c9fa6a9335422587fd0dcb88d812
diff --git a/src/main/java/com/android/tools/r8/naming/SourceFileRewriter.java b/src/main/java/com/android/tools/r8/naming/SourceFileRewriter.java
index d2d29ee..375fb45 100644
--- a/src/main/java/com/android/tools/r8/naming/SourceFileRewriter.java
+++ b/src/main/java/com/android/tools/r8/naming/SourceFileRewriter.java
@@ -24,7 +24,10 @@
       if (!options.forceProguardCompatibility
           || !options.getProguardConfiguration().getKeepAttributes().sourceFile) {
         if (options.isMinifying() || options.isOptimizing()) {
-          return env -> "r8-map-id-" + env.getMapId();
+          return env ->
+              env.getMapId() != null
+                  ? "r8-map-id-" + env.getMapId()
+                  : options.dexItemFactory().defaultSourceFileAttributeString;
         }
       }
     }
diff --git a/src/test/java/com/android/tools/r8/naming/DefaultSourceFileWithoutMapOutputTest.java b/src/test/java/com/android/tools/r8/naming/DefaultSourceFileWithoutMapOutputTest.java
index f1473f3..c492e46 100644
--- a/src/test/java/com/android/tools/r8/naming/DefaultSourceFileWithoutMapOutputTest.java
+++ b/src/test/java/com/android/tools/r8/naming/DefaultSourceFileWithoutMapOutputTest.java
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.naming;
 
+import static org.hamcrest.CoreMatchers.allOf;
+import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.StringContains.containsString;
 import static org.junit.Assert.assertEquals;
@@ -51,7 +53,7 @@
             (stackTrace, inspector) -> {
               assertEquals(1, stackTrace.getStackTraceLines().size());
               StackTraceLine stackTraceLine = stackTrace.getStackTraceLines().get(0);
-              assertEquals("r8-map-id-null", stackTraceLine.fileName);
+              assertEquals("SourceFile", stackTraceLine.fileName);
             });
   }
 
@@ -74,7 +76,8 @@
             ConsumerUtils.emptyConsumer(),
             parameters.getRuntime().asDex().getVm());
     assertNotEquals(0, artResult.exitCode);
-    assertThat(artResult.stderr, containsString("r8-map-id-null"));
+    assertThat(
+        artResult.stderr, allOf(containsString("SourceFile"), not(containsString("r8-map-id"))));
   }
 
   static class Main {