Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import com.intellij.psi.PsiAnonymousClass
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.PsiModifier
import com.intellij.psi.util.PsiUtil
import com.intellij.psi.util.parentOfType

class MixinInnerClassInspection : MixinInspection() {
Expand All @@ -41,15 +40,6 @@ class MixinInnerClassInspection : MixinInspection() {
private class Visitor(private val holder: ProblemsHolder) : JavaElementVisitor() {

override fun visitClass(psiClass: PsiClass) {
if (psiClass.containingClass == null && PsiUtil.isLocalClass(psiClass) && psiClass.parentOfType<PsiClass>()?.isMixin == true) {
holder.registerProblem(
psiClass.nameIdentifier ?: psiClass,
"Local classes are not allowed inside mixins"
)

return
}

val outerClass = psiClass.containingClass ?: return
if (!outerClass.isMixin) {
if (outerClass is PsiAnonymousClass && outerClass.parentOfType<PsiClass>()?.isMixin == true) {
Expand All @@ -72,11 +62,6 @@ class MixinInnerClassInspection : MixinInspection() {
QuickFixFactory.getInstance().createModifierListFix(psiClass, PsiModifier.STATIC, true, false),
)
}
} else {
holder.registerProblem(
psiClass.nameIdentifier ?: psiClass,
"Inner classes are only allowed if they are also @Mixin classes"
)
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/test/kotlin/platform/mixin/InnerClassTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ class InnerClassTest : BaseMixinTest() {
};
}

private static void localClassBad() {
class <error descr="Local classes are not allowed inside mixins">Local</error> {
private static void localClassOk() {
class Local {
}
}

Expand All @@ -77,7 +77,7 @@ class InnerClassTest : BaseMixinTest() {

}

class <error descr="Inner classes are only allowed if they are also @Mixin classes">VeryBadInnerClass</error> {
class InnerClassOk {

}

Expand Down