More correct code for adding type specification to function declaration with no parameter list
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.jet.lang.psi.JetPsiFactory
|
import org.jetbrains.jet.lang.psi.JetPsiFactory
|
||||||
import com.intellij.psi.PsiWhiteSpace
|
import com.intellij.psi.PsiWhiteSpace
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
|
import org.jetbrains.jet.lang.psi.JetNamedDeclaration
|
||||||
|
import com.intellij.psi.PsiErrorElement
|
||||||
|
|
||||||
fun getTypeRef(declaration: JetDeclaration): JetTypeReference? {
|
fun getTypeRef(declaration: JetDeclaration): JetTypeReference? {
|
||||||
return declaration.getFirstChild()!!.siblings(forward = true)
|
return declaration.getFirstChild()!!.siblings(forward = true)
|
||||||
@@ -39,7 +40,7 @@ fun setTypeRef(declaration: JetNamedDeclaration, addAfter: PsiElement?, typeRef:
|
|||||||
return oldTypeRef.replace(typeRef) as JetTypeReference
|
return oldTypeRef.replace(typeRef) as JetTypeReference
|
||||||
}
|
}
|
||||||
else {
|
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
|
val newTypeRef = declaration.addAfter(typeRef, anchor) as JetTypeReference
|
||||||
declaration.addAfter(JetPsiFactory(declaration.getProject()).createColon(), anchor)
|
declaration.addAfter(JetPsiFactory(declaration.getProject()).createColon(), anchor)
|
||||||
return newTypeRef
|
return newTypeRef
|
||||||
|
|||||||
Reference in New Issue
Block a user