More correct code for adding type specification to function declaration with no parameter list

This commit is contained in:
Valentin Kipyatkov
2014-10-06 21:50:27 +04:00
parent cc3ca57b75
commit b5722c9470
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiElement
import org.jetbrains.jet.lang.psi.JetPsiFactory
import com.intellij.psi.PsiWhiteSpace
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
import com.intellij.psi.PsiErrorElement
fun getTypeRef(declaration: JetDeclaration): JetTypeReference? {
return declaration.getFirstChild()!!.siblings(forward = true)
@@ -39,7 +40,7 @@ fun setTypeRef(declaration: JetNamedDeclaration, addAfter: PsiElement?, typeRef:
return oldTypeRef.replace(typeRef) as JetTypeReference
}
else {
var anchor = addAfter ?: declaration.getNameIdentifier()
var anchor = addAfter ?: declaration.getNameIdentifier()?.siblings(forward = true)?.firstOrNull { it is PsiErrorElement }
val newTypeRef = declaration.addAfter(typeRef, anchor) as JetTypeReference
declaration.addAfter(JetPsiFactory(declaration.getProject()).createColon(), anchor)
return newTypeRef