From bb3cacc36cf45d2ed25ccb5f4e9c00644aff4d40 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 21 Apr 2010 21:04:29 +0400 Subject: [PATCH] allow to change constructor signature when caret is on constructor call --- .../changeSignature/ChangeSignatureTargetUtil.java | 5 +++-- .../refactoring/changeSignatureTarget/inTypeArguments.java | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureTargetUtil.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureTargetUtil.java index 5c947f4c48bb..b4735a329f85 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureTargetUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureTargetUtil.java @@ -35,10 +35,11 @@ public class ChangeSignatureTargetUtil { return PsiTreeUtil.getParentOfType(element, PsiMethod.class); } - final PsiMethodCallExpression expression = PsiTreeUtil.getParentOfType(element, PsiMethodCallExpression.class); + final PsiCallExpression expression = PsiTreeUtil.getParentOfType(element, PsiCallExpression.class); if (expression != null) { assert element != null; - final PsiExpression qualifierExpression = expression.getMethodExpression().getQualifierExpression(); + final PsiExpression qualifierExpression = expression instanceof PsiMethodCallExpression ? ((PsiMethodCallExpression)expression).getMethodExpression().getQualifierExpression() + : expression instanceof PsiNewExpression ? ((PsiNewExpression)expression).getQualifier() : null; if (PsiTreeUtil.isAncestor(qualifierExpression, element, false)) { final PsiExpressionList expressionList = PsiTreeUtil.getParentOfType(qualifierExpression, PsiExpressionList.class); if (expressionList != null) { diff --git a/java/java-tests/testData/refactoring/changeSignatureTarget/inTypeArguments.java b/java/java-tests/testData/refactoring/changeSignatureTarget/inTypeArguments.java index d0fb0a13392e..088e9bbcc97d 100644 --- a/java/java-tests/testData/refactoring/changeSignatureTarget/inTypeArguments.java +++ b/java/java-tests/testData/refactoring/changeSignatureTarget/inTypeArguments.java @@ -1,5 +1,7 @@ import java.util.*; class A1 { + A1(){} + public static void main(String[] args) { Callable callable = new Callable() {