You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2021/07/24 17:20:37 UTC
[groovy] branch danielsun/tweak-print-try-catch-finally-statement
updated: tweak printing binary expression
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch danielsun/tweak-print-try-catch-finally-statement
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/danielsun/tweak-print-try-catch-finally-statement by this push:
new 59f9377 tweak printing binary expression
59f9377 is described below
commit 59f93779101202c17bcc80ecc2303900d33555d2
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Jul 25 01:20:23 2021 +0800
tweak printing binary expression
---
.../groovy/console/ui/AstNodeToScriptAdapter.groovy | 16 ++++++++++++----
.../groovy/console/ui/AstNodeToScriptAdapterTest.groovy | 2 +-
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstNodeToScriptAdapter.groovy b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstNodeToScriptAdapter.groovy
index a2db572..bb18e79 100644
--- a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstNodeToScriptAdapter.groovy
+++ b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/AstNodeToScriptAdapter.groovy
@@ -726,12 +726,20 @@ class AstNodeToScriptVisitor implements CompilationUnit.IPrimaryClassNodeOperati
@Override
void visitBinaryExpression(BinaryExpression expression) {
- expression?.leftExpression?.visit this
+ boolean isSubscriptOp = expression?.operation?.text == '['
+ if (isSubscriptOp && expression?.leftExpression instanceof VariableExpression) {
+ visitVariableExpression((VariableExpression) expression?.leftExpression, false)
+ } else {
+ expression?.leftExpression?.visit this
+ }
if (!(expression.rightExpression instanceof EmptyExpression) || expression.operation.type != Types.ASSIGN) {
- print " $expression.operation.text "
+ if (isSubscriptOp) {
+ print "["
+ } else {
+ print " $expression.operation.text "
+ }
expression.rightExpression.visit this
-
- if (expression?.operation?.text == '[') {
+ if (isSubscriptOp) {
print ']'
}
}
diff --git a/subprojects/groovy-console/src/test/groovy/groovy/console/ui/AstNodeToScriptAdapterTest.groovy b/subprojects/groovy-console/src/test/groovy/groovy/console/ui/AstNodeToScriptAdapterTest.groovy
index 6da1763..8784801 100644
--- a/subprojects/groovy-console/src/test/groovy/groovy/console/ui/AstNodeToScriptAdapterTest.groovy
+++ b/subprojects/groovy-console/src/test/groovy/groovy/console/ui/AstNodeToScriptAdapterTest.groovy
@@ -71,7 +71,7 @@ final class AstNodeToScriptAdapterTest extends GroovyTestCase {
println "File $args[0] cannot be found." '''
String result = compileToScript(script)
assert result.contains('println("File $args[0] cannot be found.")')
- assert result.contains('file = new java.io.File((( args [ 0]) as java.lang.String))')
+ assert result.contains('file = new java.io.File(((args[0]) as java.lang.String))')
}
void testMethods() {