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 3a617bcde545..45adc462a6fc 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 @@ -43,6 +43,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrStatement; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariable; import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariableDeclaration; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentLabel; import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentList; import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock; import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrCodeBlock; @@ -83,7 +84,9 @@ public class PsiImplUtil { } // Remove unnecessary parentheses - if (removeUnnecessaryParentheses && oldParent instanceof GrParenthesizedExpression) { + if (removeUnnecessaryParentheses && + oldParent instanceof GrParenthesizedExpression && + !(oldParent.getParent() instanceof GrArgumentLabel)) { return ((GrExpression)oldParent).replaceWithExpression(newExpr, removeUnnecessaryParentheses); } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/inline/InlineMethodTest.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/inline/InlineMethodTest.java index 87de00c74412..223f8a197412 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/inline/InlineMethodTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/inline/InlineMethodTest.java @@ -96,6 +96,7 @@ public class InlineMethodTest extends LightCodeInsightFixtureTestCase { public void testFieldAsParameter() throws Throwable { doTest(); } public void testWritableVariable() throws Throwable { doTest(); } public void testSingleExpression() {doTest();} + public void testNamedArg() {doTest();} public void _testInlineInGString() throws Throwable {doTest(); } public void testInlineAll() throws Throwable { diff --git a/plugins/groovy/testdata/groovy/refactoring/inlineMethod/namedArg.test b/plugins/groovy/testdata/groovy/refactoring/inlineMethod/namedArg.test new file mode 100644 index 000000000000..e465422749b1 --- /dev/null +++ b/plugins/groovy/testdata/groovy/refactoring/inlineMethod/namedArg.test @@ -0,0 +1,13 @@ +def foo(name) { + [(name):2] +} + +def bar = 3+4 +def x = foo(bar) +----- +def foo(name) { + [(name):2] +} + +def bar = 3+4 +def x = [(bar):2] \ No newline at end of file