Thodoris Sotiropoulos created GROOVY-11444:
----------------------------------------------

             Summary: 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


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)

Reply via email to