User: llamalad7 Date: 16 Oct 25 21:34 Revision: d7d6af165b0ca4c6f51420ba478f1d48b477b30a Summary: Fix: Check all annotations for targets in LocalArgsOnlyInspection. (#2529) Currently, only the first one is checked, which is particularly noticeable with Expressions since those normally involve other annotations preceding the injector. TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=10178&personal=false Index: src/main/kotlin/platform/mixin/inspection/mixinextras/LocalArgsOnlyInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/mixinextras/LocalArgsOnlyInspection.kt (revision bf56eb7ba38960d708e531aadc3b139ecec5e0c2) +++ src/main/kotlin/platform/mixin/inspection/mixinextras/LocalArgsOnlyInspection.kt (revision d7d6af165b0ca4c6f51420ba478f1d48b477b30a) @@ -29,7 +29,7 @@ import com.demonwav.mcdev.platform.mixin.util.MixinConstants.MixinExtras.unwrapLocalRef import com.demonwav.mcdev.util.constantValue import com.demonwav.mcdev.util.findContainingMethod -import com.demonwav.mcdev.util.mapFirstNotNull +import com.demonwav.mcdev.util.ifEmpty import com.intellij.codeInspection.ProblemsHolder import com.intellij.psi.JavaElementVisitor import com.intellij.psi.PsiAnnotation @@ -52,15 +52,15 @@ val parameter = localAnnotation.parentOfType() ?: return val method = parameter.findContainingMethod() ?: return - val targets = method.annotations.mapFirstNotNull { annotation -> + val targets = method.annotations.flatMap { annotation -> MixinAnnotationHandler.resolveTarget(annotation).asSequence() .filterIsInstance() .map { it.classAndMethod } - } ?: return + }.ifEmpty { return } val localType = parameter.type.unwrapLocalRef() - if (ModifyVariableArgsOnlyInspection.shouldReport(localAnnotation, localType, targets)) { + if (ModifyVariableArgsOnlyInspection.shouldReport(localAnnotation, localType, targets.asSequence())) { holder.registerProblem( localAnnotation.nameReferenceElement ?: localAnnotation, "@Local may be argsOnly = true",