User: joe Date: 15 Sep 23 15:15 Revision: b95677e9c3c995625252c539f6428e294c716bcf Summary: Fix MixinClassCastInspectionSuppressor for pattern match instanceof and architectury projects TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8727&personal=false Index: src/main/kotlin/platform/mixin/inspection/suppress/MixinClassCastInspectionSuppressor.kt =================================================================== --- src/main/kotlin/platform/mixin/inspection/suppress/MixinClassCastInspectionSuppressor.kt (revision ad3304afa4ed2fabcda134d40d7ad95520f80f39) +++ src/main/kotlin/platform/mixin/inspection/suppress/MixinClassCastInspectionSuppressor.kt (revision b95677e9c3c995625252c539f6428e294c716bcf) @@ -39,6 +39,7 @@ import com.intellij.psi.PsiInstanceOfExpression import com.intellij.psi.PsiType import com.intellij.psi.PsiTypeCastExpression +import com.intellij.psi.PsiTypeTestPattern import com.intellij.psi.util.PsiUtil /** @@ -54,7 +55,9 @@ // check instanceof if (element is PsiInstanceOfExpression) { - val castType = element.checkType?.type ?: return false + val castType = element.checkType?.type + ?: (element.pattern as? PsiTypeTestPattern)?.checkType?.type + ?: return false var operand = PsiUtil.skipParenthesizedExprDown(element.operand) ?: return false while (operand is PsiTypeCastExpression) { operand = PsiUtil.skipParenthesizedExprDown(operand.operand) ?: return false Index: src/main/kotlin/platform/mixin/util/Mixin.kt =================================================================== --- src/main/kotlin/platform/mixin/util/Mixin.kt (revision ad3304afa4ed2fabcda134d40d7ad95520f80f39) +++ src/main/kotlin/platform/mixin/util/Mixin.kt (revision b95677e9c3c995625252c539f6428e294c716bcf) @@ -201,7 +201,7 @@ private fun isClassAssignable(leftClass: PsiClass, rightClass: PsiClass): Boolean { var result = false InheritanceUtil.processSupers(rightClass, true) { - if (it == leftClass) { + if (it.qualifiedName == leftClass.qualifiedName) { result = true false } else {