Leonard Brünings created GROOVY-10589:
-----------------------------------------

             Summary: TypeChecked/CompileStatic Incompatible generic argument 
types regression for List.sort(boolean, Comparator)
                 Key: GROOVY-10589
                 URL: https://issues.apache.org/jira/browse/GROOVY-10589
             Project: Groovy
          Issue Type: Bug
          Components: Static compilation, Static Type Checker
    Affects Versions: 4.0.1
            Reporter: Leonard Brünings


{code:groovy}
import groovy.transform.*
import java.time.Instant

@CompileStatic
class Reproducer {
    static final Comparator<Record> RECORD_COMPARATOR = { Record a, Record b -> 
a.timestamp <=> b.timestamp }
    
    List<Record> records = []
    
    
    List<Record> getSortedRecords() {
        records.sort(false, RECORD_COMPARATOR)
    }
}

@TupleConstructor
@CompileStatic
class Record {
   final Instant timestamp
}
{code}

fails with 

{noformat}
[Static type checking] - Incompatible generic argument types. Cannot assign 
java.util.List<? extends Record> to: java.util.List<Record>
 @ line 12, column 9.
{noformat}

[Groovy Web 
Console|https://gwc-experiment.appspot.com/?g=groovy_4_0&codez=eJx1UMtqwzAQvOsr9piUVF-QmAa3h0KLi5JbKWUjy0FFssRKDpTgf68suWkgdA567Wh2Z7T1jiIcybnTN4-EfegcWX7HdKl84Ql51Fbx5z5E7CNjD7WzXhu1ixi1ZNJgCCCUJ9cOUhGcGSSEXIVO92hg-oGE0dFaKOmorUA81Y14_Kyb17et2O4bARs4Q6kCrn5PB7ivoEyQFK2H9aaCw9V9zN3y8qJDvOhT3kNSff_4o9zyjiruklHVloewWM4GJswiPCTGokMT1Op28GWmj2xM0ewHb1TtUlQ0yGT3v7Cyt9ynBDSHCxdfkxpc4QfhEYct]



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to