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:42:38 UTC
[groovy] branch danielsun/tweak-print-try-catch-finally-statement
updated: tweak printing cast 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 70090db tweak printing cast expression
70090db is described below
commit 70090db9d4dc56d9e7218884f26a874be5f48ebb
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Jul 25 01:42:16 2021 +0800
tweak printing cast expression
---
.../groovy/console/ui/AstNodeToScriptAdapter.groovy | 17 +++++++++++++----
.../groovy/console/ui/AstNodeToScriptAdapterTest.groovy | 6 +++---
2 files changed, 16 insertions(+), 7 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 1fffa0b..ef2f023 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
@@ -913,11 +913,20 @@ class AstNodeToScriptVisitor implements CompilationUnit.IPrimaryClassNodeOperati
@Override
void visitCastExpression(CastExpression expression) {
print '(('
- expression?.expression?.visit this
- print ') as '
- visitType(expression?.type)
+ if (expression?.coerce) {
+ expression?.expression?.visit this
+ print ') as '
+ visitType(expression?.type)
+ } else {
+ visitType(expression?.type)
+ print ') '
+ if (expression?.expression instanceof VariableExpression) {
+ visitVariableExpression((VariableExpression) expression?.expression, false)
+ } else {
+ expression?.expression?.visit this
+ }
+ }
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 8784801..0e44a00 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(((java.lang.String) args[0]))')
}
void testMethods() {
@@ -190,7 +190,7 @@ final class AstNodeToScriptAdapterTest extends GroovyTestCase {
def y = 2
(boolean) !(-x + (+y--)) '''
String result = compileToScript(script, CompilePhase.SEMANTIC_ANALYSIS)
- assert result.contains('((!(-( x ) + +(( y )--))) as boolean)')
+ assert result.contains('((boolean) !(-( x ) + +(( y )--)))')
}
void testArrayHandling() {
@@ -589,7 +589,7 @@ final class AstNodeToScriptAdapterTest extends GroovyTestCase {
assert result.contains("_result = org.codehaus.groovy.util.HashCodeHelper.updateHash(_result, this.getColor())")
// assert clones
- assert result.contains("((org.codehaus.groovy.runtime.ReflectionMethodInvoker.invoke(when, 'clone', new java.lang.Object[][])) as java.util.Date)")
+ assert result.contains("((java.util.Date) org.codehaus.groovy.runtime.ReflectionMethodInvoker.invoke(when, 'clone', new java.lang.Object[][]))")
}
void testAnonymousInnerClass() {