You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2015/06/28 12:04:27 UTC
incubator-groovy git commit: GROOVY-7477: CompileStatic-related "BUG!
exception in phase 'instruction selection'"
Repository: incubator-groovy
Updated Branches:
refs/heads/master f70235e07 -> 6cf1ee0ad
GROOVY-7477: CompileStatic-related "BUG! exception in phase 'instruction selection'"
Project: http://git-wip-us.apache.org/repos/asf/incubator-groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-groovy/commit/6cf1ee0a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-groovy/tree/6cf1ee0a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-groovy/diff/6cf1ee0a
Branch: refs/heads/master
Commit: 6cf1ee0adbf3e1b33f42ffb2afa4b5f31a06bff7
Parents: f70235e
Author: Paul King <pa...@asert.com.au>
Authored: Sat Jun 27 11:01:35 2015 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Sun Jun 28 20:03:56 2015 +1000
----------------------------------------------------------------------
.../groovy/transform/stc/StaticTypeCheckingSupport.java | 2 +-
src/test/groovy/transform/stc/BugsSTCTest.groovy | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/6cf1ee0a/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index 2955bdd..c82bcba 100644
--- a/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -1599,7 +1599,7 @@ public abstract class StaticTypeCheckingSupport {
*/
static void extractGenericsConnections(Map<String, GenericsType> connections, ClassNode type, ClassNode target) {
if (target==null || type==target || !isUsingGenericsOrIsArrayUsingGenerics(target)) return;
- if (type==UNKNOWN_PARAMETER_TYPE) return;
+ if (type == null || type==UNKNOWN_PARAMETER_TYPE) return;
if (type.isArray() && target.isArray()) {
extractGenericsConnections(connections, type.getComponentType(), target.getComponentType());
} else if (target.isGenericsPlaceHolder() || type.equals(target) || !implementsInterfaceOrIsSubclassOf(type, target)) {
http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/6cf1ee0a/src/test/groovy/transform/stc/BugsSTCTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/groovy/transform/stc/BugsSTCTest.groovy b/src/test/groovy/transform/stc/BugsSTCTest.groovy
index 432d865..2962e39 100644
--- a/src/test/groovy/transform/stc/BugsSTCTest.groovy
+++ b/src/test/groovy/transform/stc/BugsSTCTest.groovy
@@ -135,6 +135,17 @@ class BugsSTCTest extends StaticTypeCheckingTestCase {
'''
}
+ void testGroovy7477NullGenericsType() {
+ assertScript '''
+ class L<E> extends ArrayList<E> {
+ boolean removeIf(Comparator<? super E> filter) { }
+ }
+ L<String> items = ['foo', 'bar'] as L<String>
+ items.removeIf({a, b -> 1} as Comparator<?>)
+ assert items
+ '''
+ }
+
void testGroovy5482ListsAndFlowTyping() {
assertScript '''
class StaticGroovy2 {