User: senseiwells Date: 17 Apr 24 11:13 Revision: b2c6e44eeacb203cc3fbbebdf336e261031e4015 Summary: Suppress `ReferenceToMixin` for `@Dynamic` (#2280) * Suppress `ReferenceToMixin` for `@Dynamic` * Fix formatting for `MixinClassCannotBeReferencedSuppressor` * Move logic to `MixinClassReferenceInspection` TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9261&personal=false Index: src/main/kotlin/platform/mixin/inspection/MixinClassReferenceInspection.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/MixinClassReferenceInspection.kt (revision a62cd60033682be7f370841704adff9b532daeba) +++ src/main/kotlin/platform/mixin/inspection/MixinClassReferenceInspection.kt (revision b2c6e44eeacb203cc3fbbebdf336e261031e4015) @@ -20,14 +20,17 @@ package com.demonwav.mcdev.platform.mixin.inspection +import com.demonwav.mcdev.platform.mixin.util.MixinConstants import com.demonwav.mcdev.platform.mixin.util.isAccessorMixin import com.demonwav.mcdev.platform.mixin.util.isMixin import com.demonwav.mcdev.util.findContainingClass import com.intellij.codeInspection.ProblemsHolder import com.intellij.psi.JavaElementVisitor +import com.intellij.psi.PsiAnnotation import com.intellij.psi.PsiClassType import com.intellij.psi.PsiElementVisitor import com.intellij.psi.PsiTypeElement +import com.intellij.psi.util.parentOfType class MixinClassReferenceInspection : MixinInspection() { @@ -58,6 +61,11 @@ return } + val annotation = type.parentOfType() + if (annotation != null && annotation.hasQualifiedName(MixinConstants.Annotations.DYNAMIC)) { + return + } + holder.registerProblem(type, "Mixin class cannot be referenced directly") } }