Add removeTypeAnnotation(JetFunction function) utility.

This commit is contained in:
Wojciech Lopata
2013-02-09 11:01:11 +01:00
committed by Andrey Breslav
parent 3ec9cd817f
commit a880b2a699
@@ -265,21 +265,24 @@ public class SpecifyTypeExplicitlyAction extends PsiElementBaseIntentionAction {
return null;
}
private static void removeTypeAnnotation(@NotNull JetNamedDeclaration property, @Nullable JetTypeReference typeReference) {
private static void removeTypeAnnotation(@Nullable PsiElement removeAfter, @Nullable JetTypeReference typeReference) {
if (removeAfter == null) return;
if (typeReference == null) return;
PsiElement identifier = property.getNameIdentifier();
if (identifier == null) return;
PsiElement sibling = identifier.getNextSibling();
PsiElement sibling = removeAfter.getNextSibling();
if (sibling == null) return;
PsiElement nextSibling = typeReference.getNextSibling();
sibling.getParent().getNode().removeRange(sibling.getNode(), nextSibling == null ? null : nextSibling.getNode());
}
public static void removeTypeAnnotation(JetProperty property) {
removeTypeAnnotation(property, property.getTypeRef());
removeTypeAnnotation(property.getNameIdentifier(), property.getTypeRef());
}
public static void removeTypeAnnotation(JetParameter parameter) {
removeTypeAnnotation(parameter, parameter.getTypeReference());
removeTypeAnnotation(parameter.getNameIdentifier(), parameter.getTypeReference());
}
public static void removeTypeAnnotation(JetFunction function) {
removeTypeAnnotation(function.getValueParameterList(), function.getReturnTypeRef());
}
}