| commit | 3086746ab528fd5ce83617b01a7a442b8900ec49 | [log] [tgz] |
|---|---|---|
| author | Ian Zerny <zerny@google.com> | Mon Nov 27 19:15:26 2023 +0100 |
| committer | Ian Zerny <zerny@google.com> | Thu Nov 30 12:55:55 2023 +0000 |
| tree | 216ae22017441068a2da21e611310ec11937aec2 | |
| parent | 426a00b0939323b9824c573ce77786772775af0c [diff] |
Allow identifier content to follow <init>/<clinit> names. Bug: b/309080420 Change-Id: I07d86dcd4f91ecc32fcf69235865a4fcd5fef0eb
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java index 71ff9e8..559d7f0 100644 --- a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java +++ b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
@@ -674,6 +674,11 @@ } if (isInit) { expect('>'); + // There are some files that include identifier text after <clinit>, such as + // <clinit>$redex$opt as seen in b/309080420. + while (IdentifierUtils.isDexIdentifierPart(peekCodePoint())) { + nextCodePoint(); + } } if (IdentifierUtils.isDexIdentifierPart(peekCodePoint())) { throw new ParseException(
diff --git a/src/test/java/com/android/tools/r8/retrace/InvalidMappingRangesB309080420Test.java b/src/test/java/com/android/tools/r8/retrace/InvalidMappingRangesB309080420Test.java index 9e45fe5..09ca4e0 100644 --- a/src/test/java/com/android/tools/r8/retrace/InvalidMappingRangesB309080420Test.java +++ b/src/test/java/com/android/tools/r8/retrace/InvalidMappingRangesB309080420Test.java
@@ -34,7 +34,9 @@ "a.x -> a.x:", " 1:1:void a(com.example.Foo) -> a", " 11:2:void a() -> a", // Unexpected line range [11:2] - interpreting as [2:11] - " 12:21:void a(android.content.Intent) -> a"); + " 12:21:void a(android.content.Intent) -> a", + // Allow identifier content to follow <init>/<clinit>. + " 22:41:void <clinit>$more$stuff() -> clinit$move$stuff"); @Test public void test() throws Exception {