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

sunlan 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 cb9b2e8  GROOVY-9800: ClassNode#toString includes generics of type 
arguments
cb9b2e8 is described below

commit cb9b2e8e85b1717933914b01f6152e061a4b5f3e
Author: Eric Milles <[email protected]>
AuthorDate: Sat Apr 17 16:22:13 2021 -0500

    GROOVY-9800: ClassNode#toString includes generics of type arguments
---
 .../java/org/codehaus/groovy/ast/ClassNode.java    | 37 ++++-----------------
 src/test/groovy/bugs/Groovy6938.groovy             |  2 +-
 src/test/groovy/bugs/Groovy8310.groovy             |  4 +--
 src/test/groovy/bugs/Groovy8609Bug.groovy          | 18 +++++-----
 src/test/groovy/bugs/Groovy9338.groovy             |  4 +--
 .../stc/ArraysAndCollectionsSTCTest.groovy         | 34 +++++++++----------
 src/test/groovy/transform/stc/BugsSTCTest.groovy   |  2 +-
 .../stc/ClosureParamTypeInferenceSTCTest.groovy    |  2 +-
 .../transform/stc/ConstructorsSTCTest.groovy       |  2 +-
 .../stc/FieldsAndPropertiesSTCTest.groovy          |  6 ++--
 .../groovy/transform/stc/GenericsSTCTest.groovy    | 38 +++++++++++-----------
 src/test/groovy/transform/stc/LambdaTest.groovy    |  2 +-
 .../groovy/transform/stc/MethodCallsSTCTest.groovy |  4 +--
 .../groovy/transform/stc/STCAssignmentTest.groovy  |  2 +-
 .../groovy/ast/tools/GenericsUtilsTest.groovy      |  2 +-
 .../InheritConstructorsTransformTest.groovy        |  4 +--
 16 files changed, 70 insertions(+), 93 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java 
b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 4ab7f62..017504e 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -49,7 +49,6 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import static java.util.Arrays.stream;
-import static java.util.stream.Collectors.joining;
 import static org.apache.groovy.ast.tools.MethodNodeUtils.getCodeAsBlock;
 import static org.objectweb.asm.Opcodes.ACC_ABSTRACT;
 import static org.objectweb.asm.Opcodes.ACC_ANNOTATION;
@@ -1208,7 +1207,7 @@ public class ClassNode extends AnnotatedNode {
         return toString(true);
     }
 
-    public String toString(boolean showRedirect) {
+    public String toString(final boolean showRedirect) {
         if (isArray()) {
             return getComponentType().toString(showRedirect) + "[]";
         }
@@ -1216,9 +1215,12 @@ public class ClassNode extends AnnotatedNode {
         StringBuilder ret = new StringBuilder(!placeholder ? getName() : 
getUnresolvedName());
         GenericsType[] genericsTypes = getGenericsTypes();
         if (!placeholder && genericsTypes != null && genericsTypes.length > 0) 
{
-            ret.append(" <");
-            
ret.append(stream(genericsTypes).map(this::genericTypeAsString).collect(joining(",
 ")));
-            ret.append(">");
+            ret.append('<');
+            for (int i = 0, n = genericsTypes.length; i < n; i += 1) {
+                if (i != 0) ret.append(", ");
+                ret.append(genericsTypes[i]);
+            }
+            ret.append('>');
         }
         if (showRedirect && redirect != null) {
             ret.append(" -> ").append(redirect.toString());
@@ -1227,31 +1229,6 @@ public class ClassNode extends AnnotatedNode {
     }
 
     /**
-     * Avoids a recursive definition of toString. The default {@code toString}
-     * in {@link GenericsType} calls {@code ClassNode.toString()}, which would
-     * call {@code GenericsType.toString()} without this method.
-     */
-    private String genericTypeAsString(GenericsType genericsType) {
-        String name = genericsType.getName();
-        if (genericsType.getUpperBounds() != null) {
-            return name + " extends " + stream(genericsType.getUpperBounds())
-                        .map(this::toStringTerminal).collect(joining(" & "));
-        } else if (genericsType.getLowerBound() != null) {
-            return name + " super " + 
toStringTerminal(genericsType.getLowerBound());
-        } else {
-            return name;
-        }
-    }
-
-    private String toStringTerminal(ClassNode classNode) {
-        if (classNode.equals(this)) {
-            return classNode.getName();
-        } else {
-            return classNode.toString(false);
-        }
-    }
-
-    /**
      * Determines if the type has a possibly-matching instance method with the 
given name and arguments.
      *
      * @param name      the name of the method of interest
diff --git a/src/test/groovy/bugs/Groovy6938.groovy 
b/src/test/groovy/bugs/Groovy6938.groovy
index ae4f9b6..de928c5 100644
--- a/src/test/groovy/bugs/Groovy6938.groovy
+++ b/src/test/groovy/bugs/Groovy6938.groovy
@@ -55,7 +55,7 @@ final class Groovy6938 {
                             assert expr.objectExpression.text == 'super'
 
                             def type = 
expr.objectExpression.getNodeMetaData(INFERRED_TYPE)
-                            assert type.toString(false) == 'J <Integer>' // 
was "J<T>"
+                            assert type.toString(false) == 
'J<java.lang.Integer>' // was "J<T>"
 
                             type = 
node.leftExpression.getNodeMetaData(INFERRED_TYPE)
                             assert type.toString(false) == 'java.lang.Integer'
diff --git a/src/test/groovy/bugs/Groovy8310.groovy 
b/src/test/groovy/bugs/Groovy8310.groovy
index 838566f..95d1c96 100644
--- a/src/test/groovy/bugs/Groovy8310.groovy
+++ b/src/test/groovy/bugs/Groovy8310.groovy
@@ -42,7 +42,7 @@ final class Groovy8310 {
             }
         '''
 
-        assert err =~ /Cannot find matching method 
\w+#bar\(groovy.lang.Closure <java.util.List>\)/
+        assert err =~ /Cannot find matching method 
\w+#bar\(groovy.lang.Closure<java.util.List<java.lang.Integer>>\)/
     }
 
     @Test
@@ -60,7 +60,7 @@ final class Groovy8310 {
             }
         '''
 
-        assert err =~ /Cannot find matching method 
\w+#bar\(groovy.lang.Closure <java.util.List>\)/
+        assert err =~ /Cannot find matching method 
\w+#bar\(groovy.lang.Closure<java.util.List<java.lang.Integer>>\)/
     }
 
     @Test
diff --git a/src/test/groovy/bugs/Groovy8609Bug.groovy 
b/src/test/groovy/bugs/Groovy8609Bug.groovy
index a6ed105..0872090 100644
--- a/src/test/groovy/bugs/Groovy8609Bug.groovy
+++ b/src/test/groovy/bugs/Groovy8609Bug.groovy
@@ -31,7 +31,7 @@ final class Groovy8609Bug extends GroovyTestCase {
             E getFirstRecord(T recordList) {
                 return recordList.get(0)
             }
-            
+
             static void main(args) {
                 def list = new ArrayList<HashMap<String, Integer>>()
                 def record = new HashMap<String, Integer>()
@@ -50,7 +50,7 @@ final class Groovy8609Bug extends GroovyTestCase {
             E getFirstRecord(T recordList) {
                 return recordList.get(0);
             }
-            
+
             static void main(args) {
                 def list = new ArrayList<HashMap<String, Integer>>()
                 def record = new HashMap<String, Integer>()
@@ -69,7 +69,7 @@ final class Groovy8609Bug extends GroovyTestCase {
             E getFirstRecord(T recordList) {
                 return recordList.get(0);
             }
-            
+
             static void main(args) {
                 def list = new ArrayList<HashMap<String, Integer>>()
                 def record = new HashMap<String, Integer>()
@@ -88,7 +88,7 @@ final class Groovy8609Bug extends GroovyTestCase {
             E getFirstRecord(T recordList) {
                 return recordList.get(0)
             }
-            
+
             static void main(args) {
                 def list = new ArrayList<TreeMap<String, Integer>>()
                 def record = new TreeMap<String, Integer>()
@@ -99,7 +99,7 @@ final class Groovy8609Bug extends GroovyTestCase {
         }
         '''
 
-        assert errMsg.contains('[Static type checking] - Cannot find matching 
method A#getFirstRecord(java.util.ArrayList <TreeMap>)')
+        assert errMsg.contains('[Static type checking] - Cannot find matching 
method A#getFirstRecord(java.util.ArrayList<java.util.TreeMap<java.lang.String, 
java.lang.Integer>>)')
     }
 
     void testUpperBoundWithGenericsThroughWrongType2() {
@@ -109,7 +109,7 @@ final class Groovy8609Bug extends GroovyTestCase {
             E getFirstRecord(T recordList) {
                 return recordList.get(0)
             }
-            
+
             static void main(args) {
                 def list = new ArrayList<HashMap<String, Long>>()
                 def record = new HashMap<String, Long>()
@@ -120,7 +120,7 @@ final class Groovy8609Bug extends GroovyTestCase {
         }
         '''
 
-        assert errMsg.contains('[Static type checking] - Cannot find matching 
method A#getFirstRecord(java.util.ArrayList <HashMap>)')
+        assert errMsg.contains('[Static type checking] - Cannot find matching 
method A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.String, 
java.lang.Long>>)')
     }
 
     void testUpperBoundWithGenericsThroughWrongType3() {
@@ -130,7 +130,7 @@ final class Groovy8609Bug extends GroovyTestCase {
             E getFirstRecord(T recordList) {
                 return recordList.get(0)
             }
-            
+
             static void main(args) {
                 def list = new ArrayList<HashMap<StringBuffer, Integer>>()
                 def record = new HashMap<StringBuffer, Integer>()
@@ -141,6 +141,6 @@ final class Groovy8609Bug extends GroovyTestCase {
         }
         '''
 
-        assert errMsg.contains('[Static type checking] - Cannot find matching 
method A#getFirstRecord(java.util.ArrayList <HashMap>)')
+        assert errMsg.contains('[Static type checking] - Cannot find matching 
method 
A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.StringBuffer, 
java.lang.Integer>>)')
     }
 }
diff --git a/src/test/groovy/bugs/Groovy9338.groovy 
b/src/test/groovy/bugs/Groovy9338.groovy
index 34813f8..0ccbfff 100644
--- a/src/test/groovy/bugs/Groovy9338.groovy
+++ b/src/test/groovy/bugs/Groovy9338.groovy
@@ -39,7 +39,7 @@ final class Groovy9338 {
             }
             test()
         '''
-        assert err =~ /Cannot call \w+#meth\(java.lang.Class <\? extends 
java.lang.CharSequence>\) with arguments \[java.lang.Class <\?>\]/
+        assert err =~ /Cannot call \w+#meth\(java.lang.Class<\? extends 
java.lang.CharSequence>\) with arguments \[java.lang.Class<\?>\]/
     }
 
     @Test
@@ -55,6 +55,6 @@ final class Groovy9338 {
             }
             test()
         '''
-        assert err =~ /Cannot call \w+#meth\(java.lang.Class <\? super 
java.lang.CharSequence>\) with arguments \[java.lang.Class <\?>\]/
+        assert err =~ /Cannot call \w+#meth\(java.lang.Class<\? super 
java.lang.CharSequence>\) with arguments \[java.lang.Class<\?>\]/
     }
 }
diff --git a/src/test/groovy/transform/stc/ArraysAndCollectionsSTCTest.groovy 
b/src/test/groovy/transform/stc/ArraysAndCollectionsSTCTest.groovy
index 8e745b4..69d7e89 100644
--- a/src/test/groovy/transform/stc/ArraysAndCollectionsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/ArraysAndCollectionsSTCTest.groovy
@@ -330,35 +330,35 @@ class ArraysAndCollectionsSTCTest extends 
StaticTypeCheckingTestCase {
         shouldFailWithMessages '''
             List<String> m() { }
             Number[] array = m()
-        ''', 'Cannot assign value of type java.util.List <String> to variable 
of type java.lang.Number[]'
+        ''', 'Cannot assign value of type java.util.List<java.lang.String> to 
variable of type java.lang.Number[]'
 
         shouldFailWithMessages '''
             void test(Set<String> set) {
                 Number[] array = set
             }
-        ''', 'Cannot assign value of type java.util.Set <String> to variable 
of type java.lang.Number[]'
+        ''', 'Cannot assign value of type java.util.Set<java.lang.String> to 
variable of type java.lang.Number[]'
 
         shouldFailWithMessages '''
             List<? super CharSequence> m() { }
             CharSequence[] array = m()
-        ''', 'Cannot assign value of type java.util.List <? super 
java.lang.CharSequence> to variable of type java.lang.CharSequence[]'
+        ''', 'Cannot assign value of type java.util.List<? super 
java.lang.CharSequence> to variable of type java.lang.CharSequence[]'
 
         shouldFailWithMessages '''
             void test(Set<? super CharSequence> set) {
                 CharSequence[] array = set
             }
-        ''', 'Cannot assign value of type java.util.Set <? super 
java.lang.CharSequence> to variable of type java.lang.CharSequence[]'
+        ''', 'Cannot assign value of type java.util.Set<? super 
java.lang.CharSequence> to variable of type java.lang.CharSequence[]'
 
         shouldFailWithMessages '''
             List<? super Runnable> m() { }
             Runnable[] array = m()
-        ''', 'Cannot assign value of type java.util.List <? super 
java.lang.Runnable> to variable of type java.lang.Runnable[]'
+        ''', 'Cannot assign value of type java.util.List<? super 
java.lang.Runnable> to variable of type java.lang.Runnable[]'
 
         shouldFailWithMessages '''
             void test(List<? super Runnable> list) {
                 Runnable[] array = list
             }
-        ''', 'Cannot assign value of type java.util.List <? super 
java.lang.Runnable> to variable of type java.lang.Runnable[]'
+        ''', 'Cannot assign value of type java.util.List<? super 
java.lang.Runnable> to variable of type java.lang.Runnable[]'
     }
 
     // GROOVY-8983
@@ -720,7 +720,7 @@ class ArraysAndCollectionsSTCTest extends 
StaticTypeCheckingTestCase {
                 A(int n) {}
             }
             A a = [1]
-        ''', 'Cannot assign value of type java.util.List <java.lang.Integer> 
to variable of type A'
+        ''', 'Cannot assign value of type java.util.List<java.lang.Integer> to 
variable of type A'
     }
 
     // GROOVY-6912
@@ -744,7 +744,7 @@ class ArraysAndCollectionsSTCTest extends 
StaticTypeCheckingTestCase {
 
         shouldFailWithMessages '''
             ArrayList<String> strings = [1,2,3]
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.ArrayList <java.lang.Integer> to: java.util.ArrayList <String>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.ArrayList<java.lang.Integer> to: 
java.util.ArrayList<java.lang.String>'
     }
 
     // GROOVY-6912
@@ -774,7 +774,7 @@ class ArraysAndCollectionsSTCTest extends 
StaticTypeCheckingTestCase {
 
         shouldFailWithMessages '''
             LinkedHashSet<String> strings = [1,2,3]
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.LinkedHashSet <java.lang.Integer> to: java.util.LinkedHashSet 
<String>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.LinkedHashSet<java.lang.Integer> to: 
java.util.LinkedHashSet<java.lang.String>'
     }
 
     void testCollectionTypesInitializedByListLiteral1() {
@@ -816,31 +816,31 @@ class ArraysAndCollectionsSTCTest extends 
StaticTypeCheckingTestCase {
     void testCollectionTypesInitializedByListLiteral3() {
         shouldFailWithMessages '''
             Set<String> set = [1,2,3]
-        ''', 'Cannot assign java.util.LinkedHashSet <java.lang.Integer> to: 
java.util.Set <String>'
+        ''', 'Cannot assign java.util.LinkedHashSet<java.lang.Integer> to: 
java.util.Set<java.lang.String>'
 
         shouldFailWithMessages '''
             List<String> list = ['a','b',3]
-        ''', 'Cannot assign java.util.ArrayList <java.io.Serializable> to: 
java.util.List <String>'
+        ''', 'Cannot assign java.util.ArrayList<java.io.Serializable<? extends 
java.lang.Object>> to: java.util.List<java.lang.String>'
 
         shouldFailWithMessages '''
             Iterable<String> iter = [1,2,3]
-        ''', 'Cannot assign java.util.ArrayList <java.lang.Integer> to: 
java.lang.Iterable <String>'
+        ''', 'Cannot assign java.util.ArrayList<java.lang.Integer> to: 
java.lang.Iterable<java.lang.String>'
 
         shouldFailWithMessages '''
             Collection<String> coll = [1,2,3]
-        ''', 'Cannot assign java.util.ArrayList <java.lang.Integer> to: 
java.util.Collection <String>'
+        ''', 'Cannot assign java.util.ArrayList<java.lang.Integer> to: 
java.util.Collection<java.lang.String>'
 
         shouldFailWithMessages '''
             Deque<String> deque = [""]
-        ''', 'Cannot assign value of type java.util.List <java.lang.String> to 
variable of type java.util.Deque <String>'
+        ''', 'Cannot assign value of type java.util.List<java.lang.String> to 
variable of type java.util.Deque<java.lang.String>'
 
         shouldFailWithMessages '''
             Deque<String> deque = []
-        ''', 'Cannot assign value of type java.util.List <java.lang.String> to 
variable of type java.util.Deque <String>'
+        ''', 'Cannot assign value of type java.util.List<java.lang.String> to 
variable of type java.util.Deque<java.lang.String>'
 
         shouldFailWithMessages '''
             Queue<String> queue = []
-        ''', 'Cannot assign value of type java.util.List <java.lang.String> to 
variable of type java.util.Queue <String>'
+        ''', 'Cannot assign value of type java.util.List<java.lang.String> to 
variable of type java.util.Queue<java.lang.String>'
     }
 
     // GROOVY-7128
@@ -887,6 +887,6 @@ class ArraysAndCollectionsSTCTest extends 
StaticTypeCheckingTestCase {
 
         shouldFailWithMessages '''
             Map<String,Integer> map = [1:2]
-        ''', 'Cannot assign java.util.LinkedHashMap <java.lang.Integer, 
java.lang.Integer> to: java.util.Map <String, Integer>'
+        ''', 'Cannot assign java.util.LinkedHashMap<java.lang.Integer, 
java.lang.Integer> to: java.util.Map<java.lang.String, java.lang.Integer>'
     }
 }
diff --git a/src/test/groovy/transform/stc/BugsSTCTest.groovy 
b/src/test/groovy/transform/stc/BugsSTCTest.groovy
index ea1c787..9a6412a 100644
--- a/src/test/groovy/transform/stc/BugsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/BugsSTCTest.groovy
@@ -171,7 +171,7 @@ class BugsSTCTest extends StaticTypeCheckingTestCase {
             L<String> items = ['foo', 'bar'] as L<String>
             items.removeIf({a, b -> 1} as Comparator<?>)
             assert items
-        ''', 'Cannot call L#removeIf(java.util.Comparator <? super 
java.lang.String>) with arguments [java.util.Comparator <?>]'
+        ''', 'Cannot call L#removeIf(java.util.Comparator<? super 
java.lang.String>) with arguments [java.util.Comparator<?>]'
     }
 
     void testGroovy5482ListsAndFlowTyping() {
diff --git 
a/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy 
b/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy
index bc0ac8a..efb8dba 100644
--- a/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy
+++ b/src/test/groovy/transform/stc/ClosureParamTypeInferenceSTCTest.groovy
@@ -275,7 +275,7 @@ import groovy.transform.stc.ClosureParams
 
 void 
foo(@ClosureParams(value=FromString,options="java.util.List<java.lang.String>") 
Closure cl) { cl.call(['foo']) }
 foo { List<Date> d -> d.each { println it } }
-''', 'Expected parameter of type java.util.List <java.lang.String> but got 
java.util.List <Date>'
+''', 'Expected parameter of type java.util.List<java.lang.String> but got 
java.util.List<java.util.Date>'
     }
 
     void testFromStringWithDirectGenericPlaceholder() {
diff --git a/src/test/groovy/transform/stc/ConstructorsSTCTest.groovy 
b/src/test/groovy/transform/stc/ConstructorsSTCTest.groovy
index ac7c141..4db3119 100644
--- a/src/test/groovy/transform/stc/ConstructorsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/ConstructorsSTCTest.groovy
@@ -93,7 +93,7 @@ class ConstructorsSTCTest extends StaticTypeCheckingTestCase {
             import java.awt.Dimension
             List args = [100,200]
             Dimension d = args // not supported
-        ''', 'Cannot assign value of type java.util.ArrayList 
<java.lang.Integer> to variable of type java.awt.Dimension'
+        ''', 'Cannot assign value of type 
java.util.ArrayList<java.lang.Integer> to variable of type java.awt.Dimension'
     }
 
     void testConstructFromMap() {
diff --git a/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy 
b/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy
index c34ed6b..99ea5df 100644
--- a/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy
+++ b/src/test/groovy/transform/stc/FieldsAndPropertiesSTCTest.groovy
@@ -329,7 +329,7 @@ class FieldsAndPropertiesSTCTest extends 
StaticTypeCheckingTestCase {
                 Closure<List> bar = { Date date -> date.getTime() }
             }
             new Foo()
-        ''', 'Incompatible generic argument types. Cannot assign 
groovy.lang.Closure <java.lang.Long> to: groovy.lang.Closure <List>'
+        ''', 'Incompatible generic argument types. Cannot assign 
groovy.lang.Closure<java.lang.Long> to: groovy.lang.Closure<java.util.List>'
     }
 
     void testFieldInitShouldNotPassBecauseOfIncompatibleTypesWithClosure2() {
@@ -338,7 +338,7 @@ class FieldsAndPropertiesSTCTest extends 
StaticTypeCheckingTestCase {
                 java.util.function.Supplier<String> bar = { 123 }
             }
             new Foo()
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.function.Supplier <java.lang.Integer> to: java.util.function.Supplier 
<String>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.function.Supplier<java.lang.Integer> to: 
java.util.function.Supplier<java.lang.String>'
     }
 
     // GROOVY-9882
@@ -857,7 +857,7 @@ new FooWorker().doSomething()'''
 
             new FooWorker().doSomething()
         ''',
-        'Incompatible generic argument types. Cannot assign 
java.util.ArrayList <Integer> to: java.util.List <String>'
+        'Incompatible generic argument types. Cannot assign 
java.util.ArrayList<java.lang.Integer> to: java.util.List<java.lang.String>'
     }
 
     void testAICAsStaticProperty() {
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy 
b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index a542b59..39460f0 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -41,14 +41,14 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
     void testDeclaration3() {
         shouldFailWithMessages '''
             Map<String,String> obj = new HashMap<String,Integer>()
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.HashMap <String, Integer> to: java.util.Map <String, String>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.HashMap<java.lang.String, java.lang.Integer> to: 
java.util.Map<java.lang.String, java.lang.String>'
     }
 
     void testDeclaration4() {
         // no generics checked after first wildcard
         shouldFailWithMessages '''
             Map<? extends CharSequence,String> obj = new 
HashMap<String,Integer>()
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.HashMap <String, Integer> to: java.util.Map <? extends 
java.lang.CharSequence, String>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.HashMap<java.lang.String, java.lang.Integer> to: java.util.Map<? 
extends java.lang.CharSequence, java.lang.String>'
     }
 
     void testAddOnList() {
@@ -412,11 +412,11 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             class D implements I { }
 
             A<String> ax = new C<>(new D())
-        ''', 'Incompatible generic argument types. Cannot assign C <D> to: A 
<String>'
+        ''', 'Incompatible generic argument types. Cannot assign C<D> to: 
A<java.lang.String>'
 
         shouldFailWithMessages '''
             Set<List<String>> strings = new HashSet<>([new 
ArrayList<Number>()])
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.HashSet <java.util.ArrayList> to: java.util.Set <List>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.HashSet<java.util.ArrayList<java.lang.Number>> to: 
java.util.Set<java.util.List<java.lang.String>>'
     }
 
     // GROOVY-9972
@@ -506,7 +506,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             def foo = { flag, C<D> cd = (flag ? new C<>(new D()) : new C<>(new 
Object())) ->
                 cd.p.f.toLowerCase()
             }
-        ''', 'Incompatible generic argument types. Cannot assign C <? extends 
java.lang.Object> to: C <D>'
+        ''', 'Incompatible generic argument types. Cannot assign C<? extends 
java.lang.Object> to: C<D>'
     }
 
     // GROOVY-9963
@@ -574,7 +574,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
     void testLinkedListWithListArgumentAndWrongElementTypes() {
         shouldFailWithMessages '''
             List<String> list = new LinkedList<String>([1,2,3])
-        ''', 'Cannot call java.util.LinkedList#<init>(java.util.Collection <? 
extends java.lang.String>) with arguments [java.util.List <java.lang.Integer>]'
+        ''', 'Cannot call java.util.LinkedList#<init>(java.util.Collection<? 
extends java.lang.String>) with arguments [java.util.List<java.lang.Integer>]'
     }
 
     void testGenericAssignmentWithSubClass() {
@@ -620,7 +620,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             def list = ['foo','bar','baz']
             @ASTTest(phase=INSTRUCTION_SELECTION, value={
                 def type = node.getNodeMetaData(INFERRED_TYPE)
-                assert type.toString(false) == 'java.util.Map <String, Object>'
+                assert type.toString(false) == 
'java.util.Map<java.lang.String, java.lang.Object>'
             })
             def map = list.<String,Object,String>collectEntries {
                 [(it): it.hashCode()]
@@ -872,7 +872,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
 
             A<String, Integer> a = new B()
             a.test()
-        ''', 'Cannot call A#<init>(java.lang.Class <String>, java.lang.Class 
<Integer>) with arguments [java.lang.Class <java.lang.Integer>, java.lang.Class 
<java.lang.String>]'
+        ''', 'Cannot call A#<init>(java.lang.Class<java.lang.String>, 
java.lang.Class<java.lang.Integer>) with arguments 
[java.lang.Class<java.lang.Integer>, java.lang.Class<java.lang.String>]'
     }
 
     // GROOVY-9460
@@ -1004,7 +1004,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             }
         }
         new ClassB()
-        ''', 'Cannot call <X> 
groovy.transform.stc.GenericsSTCTest$ClassA#bar(java.lang.Class <Long>) with 
arguments [java.lang.Class <? extends java.lang.Object>]'
+        ''', 'Cannot call <X> 
groovy.transform.stc.GenericsSTCTest$ClassA#bar(java.lang.Class<java.lang.Long>)
 with arguments [java.lang.Class<? extends java.lang.Object>]'
     }
 
     // GROOVY-8961, GROOVY-9915
@@ -1041,7 +1041,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
                 void test() {
                     m = Collections.<Integer>emptyList()
                 }
-            """, 'Incompatible generic argument types. Cannot assign 
java.util.List <Integer> to: java.util.List <String>'
+            """, 'Incompatible generic argument types. Cannot assign 
java.util.List<java.lang.Integer> to: java.util.List<java.lang.String>'
         }
     }
 
@@ -1199,7 +1199,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             List<String> list = ['a','b','c']
             Collection<Integer> numbers = (Collection<Integer>) [1,2,3]
             boolean r = list.addAll(numbers)
-        ''', 'Cannot call java.util.ArrayList#addAll(java.util.Collection <? 
extends java.lang.String>) with arguments [java.util.Collection <Integer>]'
+        ''', 'Cannot call java.util.ArrayList#addAll(java.util.Collection<? 
extends java.lang.String>) with arguments 
[java.util.Collection<java.lang.Integer>]'
     }
 
     // GROOVY-5528
@@ -1927,7 +1927,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
                 static <T extends List<? extends CharSequence>> void bar(T a) 
{}
             }
             Foo.bar([new Object()])
-        ''', 'Cannot call <T extends java.util.List<? extends 
java.lang.CharSequence>> Foo#bar(T) with arguments [java.util.ArrayList 
<java.lang.Object>]'
+        ''', 'Cannot call <T extends java.util.List<? extends 
java.lang.CharSequence>> Foo#bar(T) with arguments 
[java.util.ArrayList<java.lang.Object>]'
     }
 
     void testOutOfBoundsBySuperGenericParameterType() {
@@ -1936,7 +1936,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
                 static <T extends List<? super CharSequence>> void bar(T a) {}
             }
             Foo.bar(['abc'])
-        ''', 'Cannot call <T extends java.util.List<? super 
java.lang.CharSequence>> Foo#bar(T) with arguments [java.util.ArrayList 
<java.lang.String>]'
+        ''', 'Cannot call <T extends java.util.List<? super 
java.lang.CharSequence>> Foo#bar(T) with arguments 
[java.util.ArrayList<java.lang.String>]'
     }
 
     void testOutOfBoundsByExtendsPlaceholderParameterType() {
@@ -1950,7 +1950,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
                 }
             }
             Baz.qux([new Object()])
-        ''', 'Cannot call <T extends java.util.List<? extends 
java.lang.CharSequence>> Foo#bar(T) with arguments [java.util.List <Object>]'
+        ''', 'Cannot call <T extends java.util.List<? extends 
java.lang.CharSequence>> Foo#bar(T) with arguments 
[java.util.List<java.lang.Object>]'
     }
 
     void testOutOfBoundsBySuperPlaceholderParameterType() {
@@ -1964,7 +1964,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
                 }
             }
             Baz.qux(['abc'])
-        ''', 'Cannot call <T extends java.util.List<? super 
java.lang.CharSequence>> Foo#bar(T) with arguments [java.util.List <String>] '
+        ''', 'Cannot call <T extends java.util.List<? super 
java.lang.CharSequence>> Foo#bar(T) with arguments 
[java.util.List<java.lang.String>] '
     }
 
     // GROOVY-5721
@@ -2321,7 +2321,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             List<Object> l = new ArrayList<>()
             assert foo(l) == 1
         ''',
-        '#foo(java.util.List <? extends A>) with arguments 
[java.util.ArrayList <java.lang.Object>]'
+        '#foo(java.util.List<? extends A>) with arguments 
[java.util.ArrayList<java.lang.Object>]'
     }
 
     void testMethodLevelGenericsForMethodCall() {
@@ -2375,7 +2375,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             }
             GoodCodeRed.foo()
         ''',
-        "Cannot call <T> GoodCodeRed#attach(GoodCodeRed <Long>) with arguments 
[GoodCodeRed <Integer>]"
+        "Cannot call <T> GoodCodeRed#attach(GoodCodeRed<java.lang.Long>) with 
arguments [GoodCodeRed<java.lang.Integer>]"
     }
 
     void testHiddenGenerics() {
@@ -2389,7 +2389,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
             class Blah {}
             class MyList extends LinkedList<Object> {}
             List<Blah> o = new MyList()
-        ''','Incompatible generic argument types. Cannot assign MyList to: 
java.util.List <Blah>'
+        ''','Incompatible generic argument types. Cannot assign MyList to: 
java.util.List<Blah>'
 
         // Groovy-5873
         assertScript """
@@ -2918,7 +2918,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
                     [11, 12]
                 }
             }
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.List <java.lang.Integer> to: java.util.List <String>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.List<java.lang.Integer> to: java.util.List<java.lang.String>'
     }
 
     void testBoundedReturnTypeChecking() {
diff --git a/src/test/groovy/transform/stc/LambdaTest.groovy 
b/src/test/groovy/transform/stc/LambdaTest.groovy
index f8327e5..ca904b8 100644
--- a/src/test/groovy/transform/stc/LambdaTest.groovy
+++ b/src/test/groovy/transform/stc/LambdaTest.groovy
@@ -308,7 +308,7 @@ final class LambdaTest {
                 Comparator<Integer> c = (int a, int b) -> Integer.compare(a, b)
             }
         '''
-        assert err =~ /Cannot assign java.util.Comparator <int> to: 
java.util.Comparator <Integer>/
+        assert err =~ /Cannot assign java.util.Comparator<int> to: 
java.util.Comparator<java.lang.Integer>/
     }
 
     @Test // GROOVY-9977
diff --git a/src/test/groovy/transform/stc/MethodCallsSTCTest.groovy 
b/src/test/groovy/transform/stc/MethodCallsSTCTest.groovy
index f077def..495d369 100644
--- a/src/test/groovy/transform/stc/MethodCallsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/MethodCallsSTCTest.groovy
@@ -219,7 +219,7 @@ class MethodCallsSTCTest extends StaticTypeCheckingTestCase 
{
             void m(Set<Integer> set) {
             }
             m([1,2,3,3])
-        ''', 'm(java.util.List <java.lang.Integer>). Please check if the 
declared type is correct and if the method exists.'
+        ''', 'm(java.util.List<java.lang.Integer>). Please check if the 
declared type is correct and if the method exists.'
     }
 
     // GROOVY-7106, GROOVY-7274, GROOVY-9844
@@ -1148,7 +1148,7 @@ class MethodCallsSTCTest extends 
StaticTypeCheckingTestCase {
             new SpreadInCtor(*['A', 'B'])
         ''',
         'The spread operator cannot be used as argument of method or closure 
calls with static type checking because the number of arguments cannot be 
determined at compile time',
-        'Cannot find matching method SpreadInCtor#<init>(java.util.List <E 
extends java.lang.Object>)'
+        'Cannot find matching method SpreadInCtor#<init>(java.util.List<E>)'
     }
 
     void testSpreadArgsForbiddenInClosureCall() {
diff --git a/src/test/groovy/transform/stc/STCAssignmentTest.groovy 
b/src/test/groovy/transform/stc/STCAssignmentTest.groovy
index 1c6752a..b663eca 100644
--- a/src/test/groovy/transform/stc/STCAssignmentTest.groovy
+++ b/src/test/groovy/transform/stc/STCAssignmentTest.groovy
@@ -377,7 +377,7 @@ class STCAssignmentTest extends StaticTypeCheckingTestCase {
     void 
testTernaryOperatorAssignmentShouldFailBecauseOfIncompatibleGenericTypes() {
         shouldFailWithMessages '''
             List<Integer> foo = true?new LinkedList<String>():new 
LinkedList<Integer>();
-        ''', 'Incompatible generic argument types. Cannot assign 
java.util.LinkedList <? extends java.io.Serializable <? extends 
java.io.Serializable>> to: java.util.List <Integer>'
+        ''', 'Incompatible generic argument types. Cannot assign 
java.util.LinkedList<? extends java.io.Serializable<? extends 
java.io.Serializable<java.lang.String>>> to: java.util.List<java.lang.Integer>'
     }
 
     void testCastStringToChar() {
diff --git a/src/test/org/codehaus/groovy/ast/tools/GenericsUtilsTest.groovy 
b/src/test/org/codehaus/groovy/ast/tools/GenericsUtilsTest.groovy
index 1b30f71..d4b9bbf 100644
--- a/src/test/org/codehaus/groovy/ast/tools/GenericsUtilsTest.groovy
+++ b/src/test/org/codehaus/groovy/ast/tools/GenericsUtilsTest.groovy
@@ -189,7 +189,7 @@ final class GenericsUtilsTest {
         ClassNode source = findClassNode('C', classNodeList)
         ClassNode result = GenericsUtils.findParameterizedType(target, source)
 
-        assert result.toString(false) == 'A <java.lang.Number>'
+        assert result.toString(false) == 'A<java.lang.Number>'
     }
 
     @Test
diff --git 
a/src/test/org/codehaus/groovy/transform/InheritConstructorsTransformTest.groovy
 
b/src/test/org/codehaus/groovy/transform/InheritConstructorsTransformTest.groovy
index 7090068..337893b 100644
--- 
a/src/test/org/codehaus/groovy/transform/InheritConstructorsTransformTest.groovy
+++ 
b/src/test/org/codehaus/groovy/transform/InheritConstructorsTransformTest.groovy
@@ -223,9 +223,9 @@ class InheritConstructorsTransformTest extends 
GroovyShellTestCase {
             op.bar(RoundingMode.DOWN)
             assert op.toString() == '3|DOWN'
         '''
-        assert message.contains('Cannot call 
OrderPublisher#<init>(java.util.Deque <java.lang.Integer>) with arguments 
[java.util.LinkedList <String>]')
+        assert message.contains('Cannot call 
OrderPublisher#<init>(java.util.Deque<java.lang.Integer>) with arguments 
[java.util.LinkedList<java.lang.String>]')
         assert message.contains('Cannot find matching method 
OrderPublisher#<init>(java.util.Date)')
-        assert message.contains('Cannot call 
OrderPublisher#<init>(java.util.Set <RoundingMode>) with arguments 
[java.util.HashSet <Date>]')
+        assert message.contains('Cannot call 
OrderPublisher#<init>(java.util.Set<java.math.RoundingMode>) with arguments 
[java.util.HashSet<java.util.Date>]')
     }
 
     // GROOVY-9323

Reply via email to