mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Don't report when inner class is in anonymous object
GitOrigin-RevId: 8b966d428717fa1e0f6ef0b317b28d44ae9c7811
This commit is contained in:
committed by
intellij-monorepo-bot
parent
818837fc2f
commit
9d62baf06a
+2
@@ -28,10 +28,12 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isSubclassOf
|
||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
class RedundantInnerClassModifierInspection : AbstractKotlinInspection() {
|
||||
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean) = classVisitor(fun(targetClass) {
|
||||
val innerModifier = targetClass.modifierList?.getModifier(KtTokens.INNER_KEYWORD) ?: return
|
||||
if (targetClass.containingClassOrObject.safeAs<KtObjectDeclaration>()?.isObjectLiteral() == true) return
|
||||
val outerClasses = targetClass.parentsOfType<KtClass>().dropWhile { it == targetClass }.toSet()
|
||||
if (outerClasses.isEmpty() || outerClasses.any { it.isLocal || it.isInner() }) return
|
||||
if (targetClass.hasOuterClassMemberReference(outerClasses)) return
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// PROBLEM: none
|
||||
class Foo {
|
||||
fun foo() {
|
||||
object {
|
||||
private val x = "foo"
|
||||
|
||||
<caret>inner class Foo {
|
||||
fun foo() {
|
||||
x
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user