[Compose] Relax assertion requiring rewriting of minified range

Bug: b/284925475
Change-Id: I6a6e909bad4b9fc0c3863261f380ad7a5b408e2a
diff --git a/src/main/java/com/android/tools/r8/naming/ComposingBuilder.java b/src/main/java/com/android/tools/r8/naming/ComposingBuilder.java
index 22cf5e4..2330423 100644
--- a/src/main/java/com/android/tools/r8/naming/ComposingBuilder.java
+++ b/src/main/java/com/android/tools/r8/naming/ComposingBuilder.java
@@ -629,7 +629,8 @@
                             + firstPositionOfOriginalRange);
                   }
                 }
-                assert minified.hasValue();
+                assert minified.hasValue()
+                    || (mappedRange.minifiedRange == null && mappedRange.originalRange == null);
               } else {
                 MappedRange existingMappedRange =
                     existingClassBuilder.methodsWithoutPosition.get(signature);
diff --git a/src/test/java/com/android/tools/r8/mappingcompose/ComposeMethodWithLineNumberRemovedTest.java b/src/test/java/com/android/tools/r8/mappingcompose/ComposeMethodWithLineNumberRemovedTest.java
index abd20c6..8e9ea9e 100644
--- a/src/test/java/com/android/tools/r8/mappingcompose/ComposeMethodWithLineNumberRemovedTest.java
+++ b/src/test/java/com/android/tools/r8/mappingcompose/ComposeMethodWithLineNumberRemovedTest.java
@@ -4,7 +4,8 @@
 
 package com.android.tools.r8.mappingcompose;
 
-import static org.junit.Assert.assertThrows;
+import static com.android.tools.r8.mappingcompose.ComposeTestHelpers.doubleToSingleQuote;
+import static org.junit.Assert.assertEquals;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
@@ -52,12 +53,23 @@
           "    package.internal.Th a() -> b",
           "    # {'id':'com.android.tools.r8.residualsignature',"
               + "'signature':'()Lpackage/retrace_internal/F1;'}");
+  private static final String mappingResult =
+      StringUtils.unixLines(
+          "# {'id':'com.android.tools.r8.mapping','version':'2.2'}",
+          "package.ClassReference -> package.ClassReference:",
+          "package.FieldDefinition -> package.other_internal.M1:",
+          "# {'id':'sourceFile','fileName':'FieldDefinition.java'}",
+          "    package.internal.Th a() -> b",
+          "    # {'id':'com.android.tools.r8.residualsignature',"
+              + "'signature':'()Lpackage/retrace_internal/F1;'}",
+          "    1:1:void <init>() -> <init>",
+          "package.FieldDefinition$FullFieldDefinition -> package.other_internal.F1:");
 
   @Test
   public void testCompose() throws Exception {
     ClassNameMapper mappingForFoo = ClassNameMapper.mapperFromString(mappingFoo);
     ClassNameMapper mappingForBar = ClassNameMapper.mapperFromString(mappingBar);
-    // TODO(b/284925475): We should relax the assertion that line numbers can be removed.
-    assertThrows(AssertionError.class, () -> MappingComposer.compose(mappingForFoo, mappingForBar));
+    String composed = MappingComposer.compose(mappingForFoo, mappingForBar);
+    assertEquals(mappingResult, doubleToSingleQuote(composed));
   }
 }