|
|
@ -176,33 +176,32 @@ public final class TypedRemapper extends Remapper { |
|
|
|
return mapping; |
|
|
|
return mapping; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static Map<MemberRef, String> createMethodMapping(ClassPath classPath, DisjointSet<MemberRef> disjointSet) { |
|
|
|
public static boolean isMethodImmutable(ClassPath classPath, DisjointSet.Partition<MemberRef> partition) { |
|
|
|
var mapping = new HashMap<MemberRef, String>(); |
|
|
|
for (var method : partition) { |
|
|
|
var id = 0; |
|
|
|
var clazz = classPath.get(method.getOwner()); |
|
|
|
|
|
|
|
|
|
|
|
for (var partition : disjointSet) { |
|
|
|
if (EXCLUDED_METHODS.contains(method.getName())) { |
|
|
|
boolean skip = false; |
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (var method : partition) { |
|
|
|
if (clazz.isDependency()) { |
|
|
|
var clazz = classPath.get(method.getOwner()); |
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (EXCLUDED_METHODS.contains(method.getName())) { |
|
|
|
if (clazz.isNative(new MemberDesc(method.getName(), method.getDesc()))) { |
|
|
|
skip = true; |
|
|
|
return true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (clazz.isDependency()) { |
|
|
|
return false; |
|
|
|
skip = true; |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (clazz.isNative(new MemberDesc(method.getName(), method.getDesc()))) { |
|
|
|
private static Map<MemberRef, String> createMethodMapping(ClassPath classPath, DisjointSet<MemberRef> disjointSet) { |
|
|
|
skip = true; |
|
|
|
var mapping = new HashMap<MemberRef, String>(); |
|
|
|
break; |
|
|
|
var id = 0; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (skip) { |
|
|
|
for (var partition : disjointSet) { |
|
|
|
|
|
|
|
if (isMethodImmutable(classPath, partition)) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|