User: rednesto Date: 28 Jun 23 15:04 Revision: 00b77f37b5fd756aac80032e036ef0ec6138388a Summary: Fix matching bad owner matching condition In a previous change I assumed owner was using dots for inner classes, which is not the case and messes up with other parts of the Mixin support, so instead we keep the dollar sign separator when creating the MemberReference TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8558&personal=false Index: src/main/kotlin/platform/mixin/handlers/injectionPoint/NewInsnInjectionPoint.kt =================================================================== --- src/main/kotlin/platform/mixin/handlers/injectionPoint/NewInsnInjectionPoint.kt (revision 9fe7691120b368c2102060fea09efcb60a021337) +++ src/main/kotlin/platform/mixin/handlers/injectionPoint/NewInsnInjectionPoint.kt (revision 00b77f37b5fd756aac80032e036ef0ec6138388a) @@ -219,7 +219,7 @@ } private fun classToMemberReference(value: String): MemberReference? { - val fqn = value.replace('/', '.').replace('$', '.') + val fqn = value.replace('/', '.') if (fqn.isNotEmpty() && !fqn.startsWith('.') && !fqn.endsWith('.') && !fqn.contains("..")) { if (StringUtil.isJavaIdentifier(fqn.replace('.', '_'))) { return MemberReference("", owner = fqn) Index: src/main/kotlin/util/MemberReference.kt =================================================================== --- src/main/kotlin/util/MemberReference.kt (revision 9fe7691120b368c2102060fea09efcb60a021337) +++ src/main/kotlin/util/MemberReference.kt (revision 00b77f37b5fd756aac80032e036ef0ec6138388a) @@ -64,7 +64,7 @@ private fun matchOwner(clazz: String): Boolean { assert(!clazz.contains('.')) - return this.owner == null || this.owner == clazz.replace('/', '.').replace('$', '.') + return this.owner == null || this.owner == clazz.replace('/', '.') } override fun matchField(owner: String, name: String, desc: String): Boolean {