From commits-return-10426-archive-asf-public=cust-asf.ponee.io@groovy.apache.org Mon Dec 30 21:49:57 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id D3192180657 for ; Mon, 30 Dec 2019 22:49:56 +0100 (CET) Received: (qmail 58416 invoked by uid 500); 30 Dec 2019 21:49:56 -0000 Mailing-List: contact commits-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@groovy.apache.org Delivered-To: mailing list commits@groovy.apache.org Received: (qmail 58407 invoked by uid 99); 30 Dec 2019 21:49:56 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Dec 2019 21:49:56 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 0DF608D80D; Mon, 30 Dec 2019 21:49:56 +0000 (UTC) Date: Mon, 30 Dec 2019 21:49:55 +0000 To: "commits@groovy.apache.org" Subject: [groovy] branch GROOVY_2_5_X updated: remove repeat fields and other minor edits MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <157774259589.25370.4385303538030642711@gitbox.apache.org> From: emilles@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: groovy X-Git-Refname: refs/heads/GROOVY_2_5_X X-Git-Reftype: branch X-Git-Oldrev: 2c45abb1991448718901e2e591cf46c0e6c1a530 X-Git-Newrev: 497c6fcd3b1ce2147a0ab412f45f3cc0d60b6bb2 X-Git-Rev: 497c6fcd3b1ce2147a0ab412f45f3cc0d60b6bb2 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. emilles pushed a commit to branch GROOVY_2_5_X in repository https://gitbox.apache.org/repos/asf/groovy.git The following commit(s) were added to refs/heads/GROOVY_2_5_X by this push: new 497c6fc remove repeat fields and other minor edits 497c6fc is described below commit 497c6fcd3b1ce2147a0ab412f45f3cc0d60b6bb2 Author: Eric Milles AuthorDate: Mon Dec 30 15:43:10 2019 -0600 remove repeat fields and other minor edits --- .../asm/sc/StaticPropertyAccessHelper.java | 71 ++++++++++------------ 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticPropertyAccessHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticPropertyAccessHelper.java index 67f75f6..72499b5 100644 --- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticPropertyAccessHelper.java +++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticPropertyAccessHelper.java @@ -30,63 +30,57 @@ import org.codehaus.groovy.transform.sc.TemporaryVariableExpression; import java.util.Arrays; /** - * Contains helper methods aimed at facilitating the generation of statically compiled bytecode for property access. + * Facilitates the generation of statically-compiled bytecode for property access. * * @since 2.4.0 */ public abstract class StaticPropertyAccessHelper { public static Expression transformToSetterCall( - Expression receiver, - MethodNode setterMethod, - final Expression arguments, - boolean implicitThis, - boolean safe, - boolean spreadSafe, - boolean requiresReturnValue, - Expression location) { + final Expression receiver, + final MethodNode setterMethod, + final Expression argument, + final boolean implicitThis, + final boolean safe, + final boolean spreadSafe, + final boolean requiresReturnValue, + final Expression propertyExpression) { if (requiresReturnValue) { - TemporaryVariableExpression tmp = new TemporaryVariableExpression(arguments); + TemporaryVariableExpression tmp = new TemporaryVariableExpression(argument); PoppingMethodCallExpression call = new PoppingMethodCallExpression(receiver, setterMethod, tmp); - call.setImplicitThis(implicitThis); call.setSafe(safe); call.setSpreadSafe(spreadSafe); - call.setSourcePosition(location); - PoppingListOfExpressionsExpression result = new PoppingListOfExpressionsExpression(tmp, call); - result.setSourcePosition(location); - return result; - } else { - MethodCallExpression call = new MethodCallExpression( - receiver, - setterMethod.getName(), - arguments - ); call.setImplicitThis(implicitThis); + call.setSourcePosition(propertyExpression); + PoppingListOfExpressionsExpression list = new PoppingListOfExpressionsExpression(tmp, call); + list.setSourcePosition(propertyExpression); + return list; + } else { + MethodCallExpression call = new MethodCallExpression(receiver, setterMethod.getName(), argument); call.setSafe(safe); call.setSpreadSafe(spreadSafe); + call.setImplicitThis(implicitThis); call.setMethodTarget(setterMethod); - call.setSourcePosition(location); + call.setSourcePosition(propertyExpression); return call; } } private static class PoppingListOfExpressionsExpression extends ListOfExpressionsExpression { + private final TemporaryVariableExpression tmp; private final PoppingMethodCallExpression call; public PoppingListOfExpressionsExpression(final TemporaryVariableExpression tmp, final PoppingMethodCallExpression call) { - super(Arrays.asList( - tmp, - call - )); + super(Arrays.asList(tmp, call)); this.tmp = tmp; this.call = call; } @Override public Expression transformExpression(final ExpressionTransformer transformer) { - PoppingMethodCallExpression tcall = (PoppingMethodCallExpression) call.transformExpression(transformer); - return new PoppingListOfExpressionsExpression(tcall.tmp, tcall); + PoppingMethodCallExpression call = (PoppingMethodCallExpression) this.call.transformExpression(transformer); + return new PoppingListOfExpressionsExpression(call.tmp, call); } @Override @@ -99,27 +93,24 @@ public abstract class StaticPropertyAccessHelper { } private static class PoppingMethodCallExpression extends MethodCallExpression { - private final Expression receiver; - private final MethodNode setter; + private final TemporaryVariableExpression tmp; public PoppingMethodCallExpression(final Expression receiver, final MethodNode setterMethod, final TemporaryVariableExpression tmp) { super(receiver, setterMethod.getName(), tmp); - this.receiver = receiver; - this.setter = setterMethod; - this.tmp = tmp; setMethodTarget(setterMethod); + this.tmp = tmp; } @Override public Expression transformExpression(final ExpressionTransformer transformer) { - PoppingMethodCallExpression trn = new PoppingMethodCallExpression(receiver.transformExpression(transformer), setter, (TemporaryVariableExpression) tmp.transformExpression(transformer)); - trn.copyNodeMetaData(this); - trn.setSourcePosition(this); - trn.setImplicitThis(isImplicitThis()); - trn.setSafe(isSafe()); - trn.setSpreadSafe(isSpreadSafe()); - return trn; + PoppingMethodCallExpression call = new PoppingMethodCallExpression(getObjectExpression().transformExpression(transformer), getMethodTarget(), (TemporaryVariableExpression) tmp.transformExpression(transformer)); + call.copyNodeMetaData(this); + call.setSourcePosition(this); + call.setSafe(isSafe()); + call.setSpreadSafe(isSpreadSafe()); + call.setImplicitThis(isImplicitThis()); + return call; } @Override