diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java index 657f55897281..fb783b922737 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java @@ -55,6 +55,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrString; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.path.GrIndexProperty; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.path.GrMethodCallExpression; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.path.GrPropertySelection; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrAnonymousClassDefinition; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrGdkMethod; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod; @@ -1270,6 +1271,13 @@ public class ExpressionGenerator extends Generator { builder.append(')'); } + @Override + public void visitPropertySelection(GrPropertySelection expression) { + expression.getQualifier().accept(this); + builder.append('.'); + builder.append(expression.getReferenceNameElement().getText()); + } + @Override public void visitIndexProperty(GrIndexProperty expression) { final GrExpression selectedExpression = expression.getInvokedExpression(); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/convertToJava/CodeBlockGenerationTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/convertToJava/CodeBlockGenerationTest.groovy index c5d374178da6..f6e52759ee23 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/convertToJava/CodeBlockGenerationTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/convertToJava/CodeBlockGenerationTest.groovy @@ -198,4 +198,6 @@ public final class Matcher { void testInWitchClassCheck() { doTest() } void testSwitch() { doTest() } + + void testPropSelection() { doTest() } } diff --git a/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/propSelection.groovy b/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/propSelection.groovy new file mode 100644 index 000000000000..0073667147f4 --- /dev/null +++ b/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/propSelection.groovy @@ -0,0 +1 @@ +print p."a$c" \ No newline at end of file diff --git a/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/propSelection.java b/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/propSelection.java new file mode 100644 index 000000000000..0347871923e2 --- /dev/null +++ b/plugins/groovy/testdata/refactoring/convertGroovyToJava/codeBlock/propSelection.java @@ -0,0 +1 @@ +print(this.getBinding().getProperty("p")."a$c");