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)