split declaration: PIEAE (IDEA-190299)

This commit is contained in:
Anna.Kozlova
2018-04-16 16:01:10 +02:00
parent 838b1b46ff
commit 48dcb9fe54
3 changed files with 25 additions and 2 deletions

View File

@@ -153,7 +153,6 @@ public class SplitDeclarationAction extends PsiElementBaseIntentionAction {
PsiExpression rExpression = RefactoringUtil.convertInitializerToNormalExpression(initializer, var.getType());
commentTracker.replace(assignment.getRExpression(), rExpression);
commentTracker.deleteAndRestoreComments(initializer);
PsiElement block = decl.getParent();
if (block instanceof PsiForStatement) {
@@ -185,7 +184,12 @@ public class SplitDeclarationAction extends PsiElementBaseIntentionAction {
return (PsiAssignmentExpression)replaced.getExpression();
}
else {
return (PsiAssignmentExpression)((PsiExpressionStatement)block.addAfter(statement, decl)).getExpression();
try {
return (PsiAssignmentExpression)((PsiExpressionStatement)block.addAfter(statement, decl)).getExpression();
}
finally {
commentTracker.deleteAndRestoreComments(initializer);
}
}
}
else {

View File

@@ -0,0 +1,10 @@
// "Split into declaration and assignment" "true"
class Foo {
void some() {
Foo<T> f;
f = new Foo<T>(){
<T,V> void foo(T t, V v) {}
};
}
}

View File

@@ -0,0 +1,9 @@
// "Split into declaration and assignment" "true"
class Foo {
void some() {
Foo<T> <caret>f = new Foo<T>(){
<T,V> void foo(T t, V v) {}
};
}
}