@@ -29,6 +29,7 @@ import com.intellij.psi.PsiAnonymousClass
2929import com.intellij.psi.PsiClass
3030import com.intellij.psi.PsiElementVisitor
3131import com.intellij.psi.PsiModifier
32+ import com.intellij.psi.util.PsiUtil
3233import com.intellij.psi.util.parentOfType
3334
3435class MixinInnerClassInspection : MixinInspection () {
@@ -40,11 +41,20 @@ class MixinInnerClassInspection : MixinInspection() {
4041 private class Visitor (private val holder : ProblemsHolder ) : JavaElementVisitor() {
4142
4243 override fun visitClass (psiClass : PsiClass ) {
44+ if (PsiUtil .isLocalClass(psiClass)) {
45+ holder.registerProblem(
46+ psiClass.nameIdentifier ? : psiClass,
47+ " Local classes are not allowed inside mixins"
48+ )
49+
50+ return
51+ }
52+
4353 val outerClass = psiClass.containingClass ? : return
4454 if (! outerClass.isMixin) {
4555 if (outerClass is PsiAnonymousClass && outerClass.parentOfType<PsiClass >()?.isMixin == true ) {
4656 holder.registerProblem(
47- psiClass,
57+ psiClass.nameIdentifier ? : psiClass ,
4858 " Inner class not allowed inside anonymous classes inside mixins" ,
4959 )
5060 }
@@ -76,7 +86,10 @@ class MixinInnerClassInspection : MixinInspection() {
7686 return
7787 }
7888
79- holder.registerProblem(psiClass, " Double nested anonymous classes are not allowed in a @Mixin class" )
89+ holder.registerProblem(
90+ psiClass.baseClassReference,
91+ " Double nested anonymous classes are not allowed in a @Mixin class"
92+ )
8093 }
8194 }
8295}
0 commit comments