You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/07/17 15:47:45 UTC
[groovy] branch GROOVY_3_0_X updated: sync with 4_0_X
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
new 2f21b4278b sync with 4_0_X
2f21b4278b is described below
commit 2f21b4278b2c518699adb072221b4844b3e3c644
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Sun Jul 17 10:30:16 2022 -0500
sync with 4_0_X
---
.../java/org/codehaus/groovy/ast/ClassHelper.java | 1 +
src/main/java/org/codehaus/groovy/ast/ClassNode.java | 20 +++++++-------------
.../java/org/codehaus/groovy/ast/MethodNode.java | 4 +++-
.../groovy/ast/expr/DeclarationExpression.java | 8 ++++----
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
index 6045883f9a..2dda09c70c 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
@@ -108,6 +108,7 @@ public class ClassHelper {
STRING_TYPE = makeCached(String.class),
SCRIPT_TYPE = makeCached(Script.class),
BINDING_TYPE = makeCached(Binding.class),
+ THROWABLE_TYPE = makeCached(Throwable.class),
boolean_TYPE = makeCached(boolean.class),
char_TYPE = makeCached(char.class),
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 4e09342c72..ef30d3065e 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -662,21 +662,15 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
}
public void addInterface(ClassNode type) {
- // let's check if it already implements an interface
- boolean skip = false;
ClassNode[] interfaces = getInterfaces();
for (ClassNode face : interfaces) {
- if (type.equals(face)) {
- skip = true;
- break;
- }
- }
- if (!skip) {
- ClassNode[] newInterfaces = new ClassNode[interfaces.length + 1];
- System.arraycopy(interfaces, 0, newInterfaces, 0, interfaces.length);
- newInterfaces[interfaces.length] = type;
- redirect().interfaces = newInterfaces;
+ if (face.equals(type)) return;
}
+ final int n = interfaces.length;
+
+ System.arraycopy(interfaces, 0, interfaces = new ClassNode[n + 1], 0, n);
+ interfaces[n] = type; // append interface
+ setInterfaces(interfaces);
}
public boolean equals(Object that) {
@@ -982,7 +976,7 @@ public class ClassNode extends AnnotatedNode implements Opcodes {
* classes, not interfaces.
*/
public boolean declaresInterface(ClassNode classNode) {
- ClassNode[] interfaces = redirect().getInterfaces();
+ ClassNode[] interfaces = getInterfaces();
for (ClassNode face : interfaces) {
if (face.equals(classNode)) {
return true;
diff --git a/src/main/java/org/codehaus/groovy/ast/MethodNode.java b/src/main/java/org/codehaus/groovy/ast/MethodNode.java
index f2214e40ce..4f1bb5bbc8 100644
--- a/src/main/java/org/codehaus/groovy/ast/MethodNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/MethodNode.java
@@ -18,6 +18,7 @@
*/
package org.codehaus.groovy.ast;
+import org.apache.groovy.ast.tools.ClassNodeUtils;
import org.apache.groovy.ast.tools.MethodNodeUtils;
import org.codehaus.groovy.ast.stmt.BlockStatement;
import org.codehaus.groovy.ast.stmt.Statement;
@@ -287,6 +288,7 @@ public class MethodNode extends AnnotatedNode implements Opcodes {
@Override
public String toString() {
- return super.toString() + "[" + getDeclaringClass().getName() + "#" + getTypeDescriptor() + "]";
+ ClassNode declaringClass = getDeclaringClass();
+ return super.toString() + "[" + getTypeDescriptor() + (declaringClass == null ? "" : " from " + ClassNodeUtils.formatTypeName(declaringClass)) + "]";
}
}
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java
index 074a0b4fa0..154c7fcea3 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/DeclarationExpression.java
@@ -54,8 +54,8 @@ public class DeclarationExpression extends BinaryExpression {
* @param right
* the right hand side of a declaration
*/
- public DeclarationExpression(VariableExpression left, Token operation, Expression right) {
- super(left,operation,right);
+ public DeclarationExpression(final VariableExpression left, final Token operation, final Expression right) {
+ this((Expression) left, operation, right);
}
/**
@@ -68,8 +68,8 @@ public class DeclarationExpression extends BinaryExpression {
* @param right
* the right hand side of a declaration
*/
- public DeclarationExpression(Expression left, Token operation, Expression right) {
- super(left,operation,right);
+ public DeclarationExpression(final Expression left, final Token operation, final Expression right) {
+ super(left, Token.newSymbol("=", operation.getStartLine(), operation.getStartColumn()), right);
check(left);
}