From f9fe968c431766ab0937f1b717700d2afa39c9bb Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 13 Nov 2021 10:09:04 +0100 Subject: Fix remapping of `@Invoker`s with unusual method names --- src/main/kotlin/com/replaymod/gradle/remap/PsiMapper.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/main/kotlin/com/replaymod/gradle/remap/PsiMapper.kt') diff --git a/src/main/kotlin/com/replaymod/gradle/remap/PsiMapper.kt b/src/main/kotlin/com/replaymod/gradle/remap/PsiMapper.kt index a71c4d1..210e2d4 100644 --- a/src/main/kotlin/com/replaymod/gradle/remap/PsiMapper.kt +++ b/src/main/kotlin/com/replaymod/gradle/remap/PsiMapper.kt @@ -437,7 +437,9 @@ internal class PsiMapper( private fun remapAccessors(mapping: ClassMapping<*, *>) { file.accept(object : JavaRecursiveElementVisitor() { override fun visitMethod(method: PsiMethod) { - val annotation = method.getAnnotation(CLASS_ACCESSOR) ?: method.getAnnotation(CLASS_INVOKER) ?: return + val accessorAnnotation = method.getAnnotation(CLASS_ACCESSOR) + val invokerAnnotation = method.getAnnotation(CLASS_INVOKER) + val annotation = accessorAnnotation ?: invokerAnnotation ?: return val methodName = method.name val targetByName = when { @@ -451,7 +453,7 @@ internal class PsiMapper( it.name == null || it.name == "value" }?.literalValue ?: targetByName ?: throw IllegalArgumentException("Cannot determine accessor target for $method") - val mapped = if (methodName.startsWith("invoke")) { + val mapped = if (invokerAnnotation != null) { mapping.methodMappings.find { it.obfuscatedName == target }?.deobfuscatedName } else { mapping.findFieldMapping(target)?.deobfuscatedName -- cgit