[ https://issues.apache.org/jira/browse/GROOVY-11444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17879640#comment-17879640 ]
Eric Milles commented on GROOVY-11444: -------------------------------------- Just a note, the antlr2 parser does not accept "class C<T extends Type[]> {}". The parrot parser allows the array bound and there is no checking for it. > StackOverflowError when dealing with a generic type bounded by an array > ----------------------------------------------------------------------- > > Key: GROOVY-11444 > URL: https://issues.apache.org/jira/browse/GROOVY-11444 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Reporter: Thodoris Sotiropoulos > Priority: Minor > Labels: StackOverflowError > > I have the following program > {code:java} > class A<T extends X[], X extends T> {} {code} > h3. Actual behavior > This results in a StackOverflowError > {code:java} > >>> a serious error occurred: null > >>> stacktrace: > java.lang.StackOverflowError > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1390) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1392) > at org.codehaus.groovy.ast.ClassNode.isResolved(ClassNode.java:1391) > {code} > h3. Expected behavior > The code should have been rejected. > > Tested against master (commit: f8e2f9eb5d6278c8a02d43d289dabe244d33f913) -- This message was sent by Atlassian Jira (v8.20.10#820010)