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/12/06 17:48:36 UTC
[groovy] branch GROOVY_4_0_X updated: GROOVY-7204, GROOVY-10820: STC: partial rollback
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 43a5ca1082 GROOVY-7204, GROOVY-10820: STC: partial rollback
43a5ca1082 is described below
commit 43a5ca10822eea74b641874a10d7631f4a75d511
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Tue Dec 6 11:19:35 2022 -0600
GROOVY-7204, GROOVY-10820: STC: partial rollback
---
.../transform/stc/StaticTypeCheckingVisitor.java | 2 +-
src/spec/test/typing/TypeCheckingTest.groovy | 2 +-
src/test/groovy/bugs/Groovy7204.groovy | 2 +-
src/test/groovy/bugs/Groovy8609Bug.groovy | 6 +++---
src/test/groovy/transform/stc/GenericsSTCTest.groovy | 20 ++++++++++----------
5 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
index aba5dcb505..8467ca5a03 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java
@@ -3446,7 +3446,7 @@ public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport {
List<MethodNode> mn = null;
Receiver<String> chosenReceiver = null;
for (Receiver<String> currentReceiver : receivers) {
- mn = findMethod(currentReceiver.getType().getPlainNodeReference(), name, args);
+ mn = findMethod(currentReceiver.getType(), name, args);
if (!mn.isEmpty()) {
first = mn.get(0); // capture for error string
// for "this" in a static context, only static methods are compatible
diff --git a/src/spec/test/typing/TypeCheckingTest.groovy b/src/spec/test/typing/TypeCheckingTest.groovy
index 84c18ac9ef..915bb7431f 100644
--- a/src/spec/test/typing/TypeCheckingTest.groovy
+++ b/src/spec/test/typing/TypeCheckingTest.groovy
@@ -701,7 +701,7 @@ import static org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound
// end::flowtyping_typeconstraints_failure[]
flowTypingWithExplicitType()
''',
- 'Cannot call java.util.ArrayList#add(java.lang.String) with arguments [int]'
+ 'Cannot find matching method java.util.ArrayList#add(int)'
assertScript '''
// tag::flowtyping_typeconstraints_fixed[]
diff --git a/src/test/groovy/bugs/Groovy7204.groovy b/src/test/groovy/bugs/Groovy7204.groovy
index e68ecbf823..ece6f06d3a 100644
--- a/src/test/groovy/bugs/Groovy7204.groovy
+++ b/src/test/groovy/bugs/Groovy7204.groovy
@@ -473,7 +473,7 @@ final class Groovy7204 {
'''
}
- @NotYetImplemented @Test
+ @Test
void testCompileStatic6() {
assertScript shell, '''
class Repository<T, S extends Serializable> {
diff --git a/src/test/groovy/bugs/Groovy8609Bug.groovy b/src/test/groovy/bugs/Groovy8609Bug.groovy
index 28bb9232eb..28e6543b5b 100644
--- a/src/test/groovy/bugs/Groovy8609Bug.groovy
+++ b/src/test/groovy/bugs/Groovy8609Bug.groovy
@@ -98,7 +98,7 @@ final class Groovy8609Bug extends GroovyTestCase {
}
}
'''
- assert err.contains('Cannot call A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.String, java.lang.Integer>>) with arguments [java.util.ArrayList<java.util.TreeMap<java.lang.String, java.lang.Integer>>]')
+ assert err.contains('Cannot find matching method A#getFirstRecord(java.util.ArrayList<java.util.TreeMap<java.lang.String, java.lang.Integer>>)')
}
void testUpperBoundWithGenericsThroughWrongType2() {
@@ -118,7 +118,7 @@ final class Groovy8609Bug extends GroovyTestCase {
}
}
'''
- assert err.contains('Cannot call A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.String, java.lang.Integer>>) with arguments [java.util.ArrayList<java.util.HashMap<java.lang.String, java.lang.Long>>]')
+ assert err.contains('Cannot find matching method A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.String, java.lang.Long>>)')
}
void testUpperBoundWithGenericsThroughWrongType3() {
@@ -138,6 +138,6 @@ final class Groovy8609Bug extends GroovyTestCase {
}
}
'''
- assert err.contains('Cannot call A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.String, java.lang.Integer>>) with arguments [java.util.ArrayList<java.util.HashMap<java.lang.StringBuffer, java.lang.Integer>>]')
+ assert err.contains('Cannot find matching method A#getFirstRecord(java.util.ArrayList<java.util.HashMap<java.lang.StringBuffer, java.lang.Integer>>)')
}
}
diff --git a/src/test/groovy/transform/stc/GenericsSTCTest.groovy b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
index f6f853742c..0c0411db60 100644
--- a/src/test/groovy/transform/stc/GenericsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/GenericsSTCTest.groovy
@@ -58,7 +58,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
List<String> list = []
list.add(1)
''',
- 'Cannot call java.util.ArrayList#add(java.lang.String) with arguments [int]'
+ 'Cannot find matching method java.util.ArrayList#add(int)'
}
void testAddOnList2() {
@@ -134,7 +134,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
List<Integer> list = new LinkedList<>()
list.add 'Hello'
''',
- 'Cannot call java.util.LinkedList#add(java.lang.Integer) with arguments [java.lang.String]'
+ 'Cannot find matching method java.util.LinkedList#add(java.lang.String)'
}
void testAddOnListWithDiamondAndWrongTypeUsingLeftShift() {
@@ -241,7 +241,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
Number number = Optional.of(42).orElse(Double.NaN)
assert number.intValue() == 42
''',
- 'Cannot call java.util.Optional#orElse(java.lang.Integer) with arguments [double]'
+ 'Cannot find matching method java.util.Optional#orElse(double)'
}
void testReturnTypeInferenceWithMethodGenerics5() {
@@ -257,7 +257,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
Number number = Optional.ofNullable((Integer) null).orElse(42d)
assert number.intValue() == 42
''',
- 'Cannot call java.util.Optional#orElse(java.lang.Integer) with arguments [double]'
+ 'Cannot find matching method java.util.Optional#orElse(double)'
}
void testReturnTypeInferenceWithMethodGenerics7() {
@@ -2079,7 +2079,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
def map = new HashMap<String, Integer>()
map.put('hello', new Object())
''',
- 'Cannot call java.util.HashMap#put(java.lang.String, java.lang.Integer) with arguments [java.lang.String, java.lang.Object]'
+ 'Cannot find matching method java.util.HashMap#put(java.lang.String, java.lang.Object)'
}
void testPutAtWithWrongValueType() {
@@ -2103,7 +2103,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
}
}
''',
- 'Cannot call java.util.Map#put(java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) with arguments [java.lang.String, java.util.LinkedHashMap<java.lang.String, java.util.List<ConfigAttribute>>]',
+ 'Cannot find matching method java.util.Map#put(java.lang.String, java.util.LinkedHashMap<java.lang.String, java.util.List<ConfigAttribute>>)',
'Cannot call <K,V> org.codehaus.groovy.runtime.DefaultGroovyMethods#putAt(java.util.Map<K, V>, K, V) with arguments [java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>>, java.lang.String, java.util.LinkedHashMap<java.lang.String, java.util.List<ConfigAttribute>>]'
}
@@ -2883,7 +2883,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
Map<Date, Date> map = new HashMap<>()
map.put('foo', new Date())
''',
- 'Cannot call java.util.HashMap#put(java.util.Date, java.util.Date) with arguments [java.lang.String, java.util.Date]'
+ 'Cannot find matching method java.util.HashMap#put(java.lang.String, java.util.Date)'
}
void testInferDiamondForAssignmentWithDatesAndIllegalKeyUsingSquareBracket() {
shouldFailWithMessages '''
@@ -2923,7 +2923,7 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
Map<Date, Date> map = new HashMap<>()
map.put(new Date(), 'foo')
''',
- 'Cannot call java.util.HashMap#put(java.util.Date, java.util.Date) with arguments [java.util.Date, java.lang.String]'
+ 'Cannot find matching method java.util.HashMap#put(java.util.Date, java.lang.String)'
}
void testInferDiamondForAssignmentWithDatesAndIllegalValueUsingSquareBracket() {
shouldFailWithMessages '''
@@ -3314,8 +3314,8 @@ class GenericsSTCTest extends StaticTypeCheckingTestCase {
test(new Holder<Object>())
''',
'Cannot call TypedProperty#eq(java.lang.String) with arguments [groovy.lang.GString]',
- 'Cannot call TypedProperty#eq(java.lang.String) with arguments [int]',
- 'Cannot call TypedProperty#eq(java.lang.Number) with arguments [java.lang.String]'
+ 'Cannot find matching method TypedProperty#eq(int)',
+ 'Cannot find matching method TypedProperty#eq(java.lang.String)'
}
// GROOVY-5748