diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java index a0cb02304..61ee99761 100644 --- a/src/main/java/com/android/tools/r8/dex/FileWriter.java +++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java @@ -59,6 +59,7 @@ import it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap; import it.unimi.dsi.fastutil.objects.Reference2IntMap; import java.security.MessageDigest; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -282,6 +283,10 @@ public class FileWriter { } } + private boolean hasDexItemBasedString(DexCode code) { + return Arrays.stream(code.instructions).anyMatch(Instruction::isDexItemBasedConstString); + } + private List<DexCode> sortDexCodesByClassName() { Map<DexCode, String> codeToSignatureMap = new IdentityHashMap<>(); List<DexCode> codesSorted = new ArrayList<>(); @@ -289,6 +294,11 @@ public class FileWriter { clazz.forEachMethod( method -> { DexCode code = codeMapping.getCode(method); + if (code != null && hasDexItemBasedString(code)) { + System.out.println("[R8 logging]: useIdentifierNameString: " + + method.getOptimizationInfo().useIdentifierNameString()); + System.out.println("[R8 logging]: " + code.toString(method, null)); + } assert code != null || method.shouldNotHaveCode(); if (code != null) { codesSorted.add(code);