J. Brébec created GROOVY-10756:
----------------------------------

             Summary: CompileStatic with java generic
                 Key: GROOVY-10756
                 URL: https://issues.apache.org/jira/browse/GROOVY-10756
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 3.0.11
            Reporter: J. Brébec


Given:
 * A Java class having a method returning a generic Collection,
 * A groovy script compiled with "CompileStatic" and using the method of the 
JavaClass

Then the type of the element of the collection is not correctly inferred.

Example:

{code}
public class Bridge { // java
    
    public <T extends File> Collection<T> getFiles() {
        return null;
    }
}
{code}

 and the following script:

{code}
@groovy.transform.CompileStatic
def cst() {
    new Bridge().files.collect { it.name }
}
{code}

the compilation fails with the error:

{code}
[Static type checking] - No such property: name for class: java.lang.Object
{code}

Note:
- It works in v3.0.10 but not in v3.0.11
- It works if the class is defined in the groovy script
- A repro is available here: https://github.com/j3rem1e/groovy-bug-generic


 

 

 



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

Reply via email to