diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtAnonymousInitializer.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtAnonymousInitializer.kt index 84b5bc84f85..1f58fe2d0c6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtAnonymousInitializer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtAnonymousInitializer.kt @@ -23,23 +23,23 @@ import org.jetbrains.kotlin.psi.stubs.KotlinPlaceHolderStub import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import org.jetbrains.kotlin.utils.sure -class KtAnonymousInitializer : KtDeclarationStub>, KtStatementExpression { +class KtClassInitializer : KtDeclarationStub>, KtAnonymousInitializer { constructor(node: ASTNode) : super(node) - constructor(stub: KotlinPlaceHolderStub) : super(stub, KtStubElementTypes.ANONYMOUS_INITIALIZER) + constructor(stub: KotlinPlaceHolderStub) : super(stub, KtStubElementTypes.ANONYMOUS_INITIALIZER) override fun accept(visitor: KtVisitor, data: D) = visitor.visitAnonymousInitializer(this, data) - val body: KtExpression? + override val body: KtExpression? get() = findChildByClass(KtExpression::class.java) - val openBraceNode: PsiElement? + override val openBraceNode: PsiElement? get() { val body = body - return if ((body is KtBlockExpression)) body.lBrace else null + return if (body is KtBlockExpression) body.lBrace else null } - val containingDeclaration: KtDeclaration + override val containingDeclaration: KtDeclaration get() { val classOrObject = PsiTreeUtil.getParentOfType(this, KtClassOrObject::class.java, true) if (classOrObject != null) { @@ -49,3 +49,9 @@ class KtAnonymousInitializer : KtDeclarationStub ANONYMOUS_INITIALIZER = - new KtPlaceHolderStubElementType("ANONYMOUS_INITIALIZER", KtAnonymousInitializer.class); + KtPlaceHolderStubElementType ANONYMOUS_INITIALIZER = + new KtPlaceHolderStubElementType("ANONYMOUS_INITIALIZER", KtClassInitializer.class); KtPlaceHolderStubElementType SECONDARY_CONSTRUCTOR = new KtPlaceHolderStubElementType("SECONDARY_CONSTRUCTOR", KtSecondaryConstructor.class); KtPlaceHolderStubElementType PRIMARY_CONSTRUCTOR = diff --git a/idea/tests/org/jetbrains/kotlin/idea/stubs/DebugTextByStubTest.kt b/idea/tests/org/jetbrains/kotlin/idea/stubs/DebugTextByStubTest.kt index a7e71fa4c69..9257f6c86dc 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/stubs/DebugTextByStubTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/stubs/DebugTextByStubTest.kt @@ -195,7 +195,7 @@ public class DebugTextByStubTest : LightCodeInsightFixtureTestCase() { val tree = createStubTree("class A {\n init {} }") val initializer = tree.findChildStubByType(KtStubElementTypes.CLASS)!!.findChildStubByType(KtStubElementTypes.CLASS_BODY)!! .findChildStubByType(KtStubElementTypes.ANONYMOUS_INITIALIZER) - assertEquals("initializer in STUB: class A", KtAnonymousInitializer(initializer as KotlinPlaceHolderStub).getDebugText()) + assertEquals("initializer in STUB: class A", KtClassInitializer(initializer as KotlinPlaceHolderStub).getDebugText()) } fun testClassObject() {