diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtClassOrObject.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/KtClassOrObject.kt index 5991b635cef..801828c399b 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtClassOrObject.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtClassOrObject.kt @@ -20,6 +20,7 @@ import com.intellij.lang.ASTNode import com.intellij.navigation.ItemPresentation import com.intellij.navigation.ItemPresentationProviders import com.intellij.psi.PsiElement +import com.intellij.psi.PsiErrorElement import com.intellij.psi.PsiWhiteSpace import com.intellij.psi.impl.CheckUtil import com.intellij.psi.stubs.IStubElementType @@ -76,7 +77,11 @@ abstract class KtClassOrObject : inline fun addDeclaration(declaration: T): T { val body = getOrCreateBody() val anchor = PsiTreeUtil.skipSiblingsBackward(body.rBrace ?: body.lastChild!!, PsiWhiteSpace::class.java) - return body.addAfter(declaration, anchor) as T + return if (anchor?.nextSibling is PsiErrorElement) { + body.addBefore(declaration, anchor) + } else { + body.addAfter(declaration, anchor) + } as T } inline fun addDeclarationAfter(declaration: T, anchor: PsiElement?): T {