diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parameterInfo/GroovyParameterInfoHandler.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parameterInfo/GroovyParameterInfoHandler.java index afab76bb41ef..c9ded2b037c3 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parameterInfo/GroovyParameterInfoHandler.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parameterInfo/GroovyParameterInfoHandler.java @@ -449,7 +449,7 @@ public class GroovyParameterInfoHandler implements ParameterInfoHandlerWithTabAc GrParameter grParam = (GrParameter)param; GroovyPresentationUtil.appendParameterPresentation(grParam, substitutor, true, buffer); - final GrExpression initializer = grParam.getDefaultInitializer(); + final GrExpression initializer = grParam.getInitializerGroovy(); if (initializer != null) { buffer.append(" = ").append(initializer.getText()); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrField.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrField.java index 8d1dff6506af..0946bd525ae6 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrField.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrField.java @@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.extensions.NamedArgumentDescriptor; import org.jetbrains.plugins.groovy.lang.groovydoc.psi.api.GrDocCommentOwner; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrAccessorMethod; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMember; @@ -44,7 +43,5 @@ public interface GrField extends GrVariable, GrMember, PsiField, GrTopLevelDefin Map getNamedParameters(); void clearCaches(); - - void setInitializerGroovy(GrExpression initializer); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrVariable.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrVariable.java index 353bf9f2d28a..06f49d8cf493 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrVariable.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/GrVariable.java @@ -59,4 +59,6 @@ public interface GrVariable extends PsiVariable, GrNamedElement { @Nullable GrModifierList getModifierList(); + + void setInitializerGroovy(GrExpression initializer); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/params/GrParameter.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/params/GrParameter.java index 460574557b32..0adf0363c2ee 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/params/GrParameter.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/params/GrParameter.java @@ -43,7 +43,7 @@ public interface GrParameter extends PsiParameter, GrVariable, GrCondition { GrTypeElement getTypeElementGroovy(); @Nullable - GrExpression getDefaultInitializer(); + GrExpression getInitializerGroovy(); @NotNull GrModifierList getModifierList(); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java index 4c766a28ceac..ab7e3d6c53ba 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/PsiImplUtil.java @@ -461,10 +461,10 @@ public class PsiImplUtil { for (GrParameter p : parameters) { final GrTypeElement declaredType = p.getTypeElementGroovy(); if ((declaredType == null || declaredType.getType().equalsToText(CommonClassNames.JAVA_LANG_STRING + "[]")) && - p.getDefaultInitializer() == null) { + p.getInitializerGroovy() == null) { args_count++; } - if (p.getDefaultInitializer() != null) optional_count++; + if (p.getInitializerGroovy() != null) optional_count++; } return optional_count == parameters.length - 1 && args_count == 1; diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrFieldImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrFieldImpl.java index 9e2481a0d0e2..15d2240f26f2 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrFieldImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrFieldImpl.java @@ -192,30 +192,6 @@ public class GrFieldImpl extends GrVariableBaseImpl implements GrFi myGetters = null; } - @Override - public void setInitializerGroovy(GrExpression initializer) { - GrExpression oldInitializer = getInitializerGroovy(); - if (initializer == null) { - if (oldInitializer != null) { - oldInitializer.delete(); - PsiElement assign = findChildByType(GroovyTokenTypes.mASSIGN); - if (assign != null) { - assign.delete(); - } - } - return; - } - - - if (oldInitializer != null) { - oldInitializer.replaceWithExpression(initializer, true); - } - else { - getNode().addLeaf(GroovyTokenTypes.mASSIGN, "=", getNode().getLastChildNode()); - addAfter(initializer, getLastChild()); - } - } - @NotNull public GrAccessorMethod[] getGetters() { if (myGetters == null) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrVariableBaseImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrVariableBaseImpl.java index 643ea11bb143..44daa59a9c84 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrVariableBaseImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/GrVariableBaseImpl.java @@ -321,4 +321,32 @@ public abstract class GrVariableBaseImpl extends GrStubEl } super.deleteChildInternal(child); } + + @Override + public void setInitializerGroovy(GrExpression initializer) { + if (getParent() instanceof GrTupleDeclaration) { + throw new UnsupportedOperationException("don't invoke 'setInitializer()' for tuple declaration"); + } + + GrExpression oldInitializer = getInitializerGroovy(); + if (initializer == null) { + if (oldInitializer != null) { + oldInitializer.delete(); + PsiElement assign = findChildByType(GroovyTokenTypes.mASSIGN); + if (assign != null) { + assign.delete(); + } + } + return; + } + + + if (oldInitializer != null) { + oldInitializer.replaceWithExpression(initializer, true); + } + else { + getNode().addLeaf(GroovyTokenTypes.mASSIGN, "=", getNode().getLastChildNode()); + addAfter(initializer, getLastChild()); + } + } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/params/GrParameterImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/params/GrParameterImpl.java index 2d88d1057481..feaf3e490a45 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/params/GrParameterImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/params/GrParameterImpl.java @@ -42,7 +42,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.params.GrParameter; import org.jetbrains.plugins.groovy.lang.psi.api.statements.params.GrParameterList; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod; import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeElement; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiElementImpl; import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.GrVariableBaseImpl; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; @@ -131,7 +130,7 @@ public class GrParameterImpl extends GrVariableBaseImpl impleme private boolean isMainMethodFirstUntypedParameter() { if (getTypeElementGroovy() != null) return false; if (!(getParent() instanceof GrParameterList)) return false; - if (getDefaultInitializer() != null) return false; + if (getInitializerGroovy() != null) return false; GrParameterList parameterList = (GrParameterList)getParent(); if (!(parameterList.getParent() instanceof GrMethod)) return false; @@ -172,13 +171,8 @@ public class GrParameterImpl extends GrVariableBaseImpl impleme return findChildByClass(GrTypeElement.class); } - @Nullable - public GrExpression getDefaultInitializer() { - return GroovyPsiElementImpl.findExpressionChild(this); - } - public boolean isOptional() { - return getDefaultInitializer() != null; + return getInitializerGroovy() != null; } @NotNull diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/ClosureSyntheticParameter.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/ClosureSyntheticParameter.java index 8e75e1d93867..04f2ee9b0912 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/ClosureSyntheticParameter.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/ClosureSyntheticParameter.java @@ -80,7 +80,7 @@ public class ClosureSyntheticParameter extends GrLightParameter implements Navig } @Override - public GrExpression getDefaultInitializer() { + public GrExpression getInitializerGroovy() { return GroovyPsiElementFactory.getInstance(getProject()).createExpressionFromText("null"); } } \ No newline at end of file diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightLocalVariable.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightLocalVariable.java index 852717b3bfac..21e30f209a8b 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightLocalVariable.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightLocalVariable.java @@ -75,6 +75,12 @@ public class GrLightLocalVariable extends GrLightVariable implements GrVariable return null; } + @Override + public void setInitializerGroovy(GrExpression initializer) { + //todo? + throw new UnsupportedOperationException(); + } + @NotNull @Override public PsiElement getNameIdentifierGroovy() { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightParameter.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightParameter.java index 80f7dd62edc9..409f2d7cf1a1 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightParameter.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightParameter.java @@ -15,7 +15,10 @@ */ package org.jetbrains.plugins.groovy.lang.psi.impl.synthetic; -import com.intellij.psi.*; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiEllipsisType; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiType; import com.intellij.psi.impl.light.LightVariableBuilder; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -59,7 +62,7 @@ public class GrLightParameter extends LightVariableBuilder imp } @Override - public GrExpression getDefaultInitializer() { + public GrExpression getInitializerGroovy() { return null; } @@ -83,11 +86,6 @@ public class GrLightParameter extends LightVariableBuilder imp return myOptional; } - @Override - public GrExpression getInitializerGroovy() { - return null; - } - @Override public void setType(@Nullable PsiType type) throws IncorrectOperationException { throw new IncorrectOperationException(); @@ -129,6 +127,12 @@ public class GrLightParameter extends LightVariableBuilder imp return myModifierList; } + @Override + public void setInitializerGroovy(GrExpression initializer) { + //todo? + throw new UnsupportedOperationException(); + } + @Override public GrLightParameter setModifiers(String... modifiers) { GrLightModifierList modifiersList = new GrLightModifierList(getContext()); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrClosureParameterImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrClosureParameterImpl.java index a99e29c1a7c1..47b4dbcfc4ef 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrClosureParameterImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrClosureParameterImpl.java @@ -45,7 +45,7 @@ public class GrClosureParameterImpl implements GrClosureParameter { @Nullable public static GrExpression getDefaultInitializer(PsiParameter parameter) { - return parameter instanceof GrParameter ? ((GrParameter)parameter).getDefaultInitializer() : null; + return parameter instanceof GrParameter ? ((GrParameter)parameter).getInitializerGroovy() : null; } public static boolean isParameterOptional(PsiParameter parameter) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/changeSignature/GrMethodDescriptor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/changeSignature/GrMethodDescriptor.java index 74ece699810c..d570cc023092 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/changeSignature/GrMethodDescriptor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/changeSignature/GrMethodDescriptor.java @@ -47,7 +47,7 @@ public class GrMethodDescriptor implements MethodDescriptor