From 7d0b6ff1e703d0bcd065ab491e67555a913ed0bc Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 2 Aug 2010 16:47:51 +0400 Subject: [PATCH] change signature: find constructor to change --- .../JavaChangeSignatureHandler.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureHandler.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureHandler.java index dc627dc1d068..720e8d766da1 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureHandler.java @@ -111,16 +111,22 @@ public class JavaChangeSignatureHandler implements ChangeSignatureHandler { return element.getParent(); } - 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; + if (expression instanceof PsiMethodCallExpression) { + qualifierExpression = ((PsiMethodCallExpression)expression).getMethodExpression().getQualifierExpression(); + } else if (expression instanceof PsiNewExpression) { + qualifierExpression = ((PsiNewExpression)expression).getQualifier(); + } else { + qualifierExpression = null; + } if (PsiTreeUtil.isAncestor(qualifierExpression, element, false)) { final PsiExpressionList expressionList = PsiTreeUtil.getParentOfType(qualifierExpression, PsiExpressionList.class); if (expressionList != null) { final PsiElement parent = expressionList.getParent(); - if (parent instanceof PsiMethodCallExpression) { - return ((PsiMethodCallExpression)parent).resolveMethod(); + if (parent instanceof PsiCallExpression) { + return ((PsiCallExpression)parent).resolveMethod(); } } }