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/04/16 22:15:34 UTC
[groovy] branch GROOVY_4_0_X updated: minor edits
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
new ae430206dc minor edits
ae430206dc is described below
commit ae430206dce4c53ed9473f024a12b3b73564675e
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Sat Apr 16 17:12:00 2022 -0500
minor edits
---
.../java/org/codehaus/groovy/ast/GenericsType.java | 40 +++++++++-------------
1 file changed, 16 insertions(+), 24 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/GenericsType.java b/src/main/java/org/codehaus/groovy/ast/GenericsType.java
index 0f5e6e0942..a84cb9c673 100644
--- a/src/main/java/org/codehaus/groovy/ast/GenericsType.java
+++ b/src/main/java/org/codehaus/groovy/ast/GenericsType.java
@@ -71,20 +71,21 @@ public class GenericsType extends ASTNode {
}
private static String toString(final GenericsType gt, final Set<String> visited) {
+ String name = gt.getName();
ClassNode type = gt.getType();
boolean wildcard = gt.isWildcard();
boolean placeholder = gt.isPlaceholder();
ClassNode lowerBound = gt.getLowerBound();
ClassNode[] upperBounds = gt.getUpperBounds();
- if (placeholder) visited.add(gt.getName());
+ if (placeholder) visited.add(name);
- StringBuilder ret = new StringBuilder(wildcard || placeholder ? gt.getName() : genericsBounds(type, visited));
+ StringBuilder ret = new StringBuilder(wildcard || placeholder ? name : genericsBounds(type, visited));
if (lowerBound != null) {
ret.append(" super ").append(genericsBounds(lowerBound, visited));
} else if (upperBounds != null
// T extends Object should just be printed as T
- && !(placeholder && upperBounds.length == 1 && !upperBounds[0].isGenericsPlaceHolder() && upperBounds[0].getName().equals("java.lang.Object"))) {
+ && !(placeholder && upperBounds.length == 1 && !upperBounds[0].isGenericsPlaceHolder() && upperBounds[0].getName().equals(ClassHelper.OBJECT))) {
ret.append(" extends ");
for (int i = 0, n = upperBounds.length; i < n; i += 1) {
if (i != 0) ret.append(" & ");
@@ -96,30 +97,21 @@ public class GenericsType extends ASTNode {
private static String genericsBounds(final ClassNode theType, final Set<String> visited) {
StringBuilder ret = appendName(theType, new StringBuilder());
-
GenericsType[] genericsTypes = theType.getGenericsTypes();
- if (genericsTypes == null || genericsTypes.length == 0 || theType.isGenericsPlaceHolder()) { // GROOVY-10583
- return ret.toString();
- }
-
- // TODO: instead of catching Object<T> here, stop it from being placed into type in the first place
- if (genericsTypes.length == 1 && genericsTypes[0].isPlaceholder() && ret.toString().equals(ClassHelper.OBJECT)) {
- return genericsTypes[0].getName();
- }
-
- ret.append('<');
- for (int i = 0, n = genericsTypes.length; i < n; i += 1) {
- if (i != 0) ret.append(", ");
-
- GenericsType type = genericsTypes[i];
- if (type.isPlaceholder() && visited.contains(type.getName())) {
- ret.append(type.getName());
- } else {
- ret.append(toString(type, visited));
+ if (genericsTypes != null && genericsTypes.length > 0
+ && !theType.isGenericsPlaceHolder()) { // GROOVY-10583
+ ret.append('<');
+ for (int i = 0, n = genericsTypes.length; i < n; i += 1) {
+ if (i != 0) ret.append(", ");
+ GenericsType type = genericsTypes[i];
+ if (type.isPlaceholder() && visited.contains(type.getName())) {
+ ret.append(type.getName());
+ } else {
+ ret.append(toString(type, visited));
+ }
}
+ ret.append('>');
}
- ret.append('>');
-
return ret.toString();
}