Skip to content

Commit 4402820

Browse files
committed
Fix: Allow Local classes and inner classes in mixins.
They in fact are allowed.
1 parent 2c9cf24 commit 4402820

File tree

2 files changed

+3
-18
lines changed

2 files changed

+3
-18
lines changed

src/main/kotlin/platform/mixin/inspection/MixinInnerClassInspection.kt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import com.intellij.psi.PsiAnonymousClass
2929
import com.intellij.psi.PsiClass
3030
import com.intellij.psi.PsiElementVisitor
3131
import com.intellij.psi.PsiModifier
32-
import com.intellij.psi.util.PsiUtil
3332
import com.intellij.psi.util.parentOfType
3433

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

4342
override fun visitClass(psiClass: PsiClass) {
44-
if (psiClass.containingClass == null && PsiUtil.isLocalClass(psiClass) && psiClass.parentOfType<PsiClass>()?.isMixin == true) {
45-
holder.registerProblem(
46-
psiClass.nameIdentifier ?: psiClass,
47-
"Local classes are not allowed inside mixins"
48-
)
49-
50-
return
51-
}
52-
5343
val outerClass = psiClass.containingClass ?: return
5444
if (!outerClass.isMixin) {
5545
if (outerClass is PsiAnonymousClass && outerClass.parentOfType<PsiClass>()?.isMixin == true) {
@@ -72,11 +62,6 @@ class MixinInnerClassInspection : MixinInspection() {
7262
QuickFixFactory.getInstance().createModifierListFix(psiClass, PsiModifier.STATIC, true, false),
7363
)
7464
}
75-
} else {
76-
holder.registerProblem(
77-
psiClass.nameIdentifier ?: psiClass,
78-
"Inner classes are only allowed if they are also @Mixin classes"
79-
)
8065
}
8166
}
8267

src/test/kotlin/platform/mixin/InnerClassTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ class InnerClassTest : BaseMixinTest() {
6262
};
6363
}
6464
65-
private static void localClassBad() {
66-
class <error descr="Local classes are not allowed inside mixins">Local</error> {
65+
private static void localClassOk() {
66+
class Local {
6767
}
6868
}
6969
@@ -77,7 +77,7 @@ class InnerClassTest : BaseMixinTest() {
7777
7878
}
7979
80-
class <error descr="Inner classes are only allowed if they are also @Mixin classes">VeryBadInnerClass</error> {
80+
class InnerClassOk {
8181
8282
}
8383

0 commit comments

Comments
 (0)