This is an automated email from the ASF dual-hosted git repository.

emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new 855cfbb  copy implicit-this, static, and type when transforming and 
add getText()
855cfbb is described below

commit 855cfbb677a3d167e69b39269546b0e63af0ea87
Author: Eric Milles <[email protected]>
AuthorDate: Thu Jul 30 12:55:24 2020 -0500

    copy implicit-this, static, and type when transforming and add getText()
    
      to AttributeExpression
---
 .../groovy/ast/expr/AttributeExpression.java       | 29 +++++++++++----
 .../groovy/ast/expr/PropertyExpression.java        | 42 +++++++++++-----------
 2 files changed, 43 insertions(+), 28 deletions(-)

diff --git 
a/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java 
b/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
index 00d1647..07c1b2e 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/AttributeExpression.java
@@ -25,23 +25,38 @@ import org.codehaus.groovy.ast.GroovyCodeVisitor;
  */
 public class AttributeExpression extends PropertyExpression {
 
-    public AttributeExpression(Expression objectExpression, Expression 
property) {
+    public AttributeExpression(final Expression objectExpression, final 
Expression property) {
         super(objectExpression, property, false);
     }
 
-    public AttributeExpression(Expression objectExpression, Expression 
property, boolean safe) {
+    public AttributeExpression(final Expression objectExpression, final 
Expression property, final boolean safe) {
         super(objectExpression, property, safe);
     }
 
-    public void visit(GroovyCodeVisitor visitor) {
-        visitor.visitAttributeExpression(this);
+    @Override
+    public String getText() {
+        StringBuilder sb = new StringBuilder(getObjectExpression().getText());
+        if (isSpreadSafe()) sb.append('*');
+        if (isSafe()) sb.append('?');
+        sb.append(".@");
+
+        return sb.append(getProperty().getText()).toString();
     }
 
-    public Expression transformExpression(ExpressionTransformer transformer) {
-        AttributeExpression ret = new 
AttributeExpression(transformer.transform(getObjectExpression()),transformer.transform(getProperty()),isSafe());
+    @Override
+    public Expression transformExpression(final ExpressionTransformer 
transformer) {
+        AttributeExpression ret = new 
AttributeExpression(transformer.transform(getObjectExpression()), 
transformer.transform(getProperty()), isSafe());
+        ret.setImplicitThis(this.isImplicitThis());
+        ret.setSpreadSafe(this.isSpreadSafe());
+        ret.setStatic(this.isStatic());
+        ret.setType(this.getType());
         ret.setSourcePosition(this);
-        ret.setSpreadSafe(isSpreadSafe());
         ret.copyNodeMetaData(this);
         return ret;
     }
+
+    @Override
+    public void visit(final GroovyCodeVisitor visitor) {
+        visitor.visitAttributeExpression(this);
+    }
 }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java 
b/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
index 7bfaf84..8d65d2f 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/PropertyExpression.java
@@ -46,24 +46,23 @@ public class PropertyExpression extends Expression {
         this.safe = safe;
     }
 
-    public void visit(final GroovyCodeVisitor visitor) {
-        visitor.visitPropertyExpression(this);
-    }
-
+    @Override
     public Expression transformExpression(final ExpressionTransformer 
transformer) {
-        PropertyExpression ret = new PropertyExpression(
-                transformer.transform(objectExpression),
-                transformer.transform(property),
-                safe
-        );
-        ret.setImplicitThis(implicitThis);
-        ret.setSpreadSafe(spreadSafe);
-        ret.setStatic(isStatic);
+        PropertyExpression ret = new 
PropertyExpression(transformer.transform(getObjectExpression()), 
transformer.transform(getProperty()), isSafe());
+        ret.setImplicitThis(this.isImplicitThis());
+        ret.setSpreadSafe(this.isSpreadSafe());
+        ret.setStatic(this.isStatic());
+        ret.setType(this.getType());
         ret.setSourcePosition(this);
         ret.copyNodeMetaData(this);
         return ret;
     }
 
+    @Override
+    public void visit(final GroovyCodeVisitor visitor) {
+        visitor.visitPropertyExpression(this);
+    }
+
     public Expression getObjectExpression() {
         return objectExpression;
     }
@@ -77,17 +76,17 @@ public class PropertyExpression extends Expression {
     }
 
     public String getPropertyAsString() {
-        if (!(property instanceof ConstantExpression)) return null;
-        ConstantExpression constant = (ConstantExpression) property;
-        return constant.getText();
+        return getProperty() instanceof ConstantExpression ? 
getProperty().getText() : null;
     }
 
+    @Override
     public String getText() {
-        String object = objectExpression.getText();
-        String text = property.getText();
-        String spread = isSpreadSafe() ? "*" : "";
-        String safe = isSafe() ? "?" : "";
-        return object + spread + safe + "." + text;
+        StringBuilder sb = new StringBuilder(getObjectExpression().getText());
+        if (isSpreadSafe()) sb.append('*');
+        if (isSafe()) sb.append('?');
+        sb.append('.');
+
+        return sb.append(getProperty().getText()).toString();
     }
 
     public boolean isDynamic() {
@@ -126,7 +125,8 @@ public class PropertyExpression extends Expression {
         this.isStatic = isStatic;
     }
 
+    @Override
     public String toString() {
-        return super.toString() + "[object: " + objectExpression + " property: 
" + property + "]";
+        return super.toString() + "[object: " + getObjectExpression() + " 
property: " + getProperty() + "]";
     }
 }

Reply via email to