John DeRegnaucourt created GROOVY-11192:
-------------------------------------------

             Summary: Code that causes Groovy Compiler Crash
                 Key: GROOVY-11192
                 URL: https://issues.apache.org/jira/browse/GROOVY-11192
             Project: Groovy
          Issue Type: Bug
          Components: Compiler
    Affects Versions: 4.0.15
         Environment: I am running on MacBook Pro, but I think this is a 
probably regardless of environment. I have been able to repeat this bug for 
Groovy versions from 3.0.10 to 4.0.15 and all in between.
            Reporter: John DeRegnaucourt
         Attachments: MapLong-3.groovy, 
TestCompilerCrashOnTemplateArgCount.groovy

When attempting to compile the code below, it causes the Groovy compiler to 
crash with:

java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
        at 
org.codehaus.groovy.ast.tools.GenericsUtils.createGenericsSpec(GenericsUtils.java:494)
        at 
org.codehaus.groovy.ast.tools.GenericsUtils.createGenericsSpec(GenericsUtils.java:480)
        at 
org.codehaus.groovy.ast.tools.GenericsUtils.parameterizeType(GenericsUtils.java:293)
  

The crash is caused because the GenericType parameter is missing on line 9 in 
TestCompilerCrashOnTemplateArgCount:

private Map<Long, String> map = new MapLong<>()   // causes compiler crash

...but

private Map<Long, String> map2 = new MapLong<String>() // doest not cause 
compiler crash

 

The compiler is expecting one argument, but a no argument array was allocated.  
When it attempts to access the array at element [0], the compiler hits 
ArrayOutOfBoundsException.

 

This is super easy to repeat with the two tiny source files attached.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to