Jan Hackel created GROOVY-11258: ----------------------------------- Summary: AssertJ collection mapping is badly supported Key: GROOVY-11258 URL: https://issues.apache.org/jira/browse/GROOVY-11258 Project: Groovy Issue Type: Bug Components: Static Type Checker Affects Versions: 4.0.17 Reporter: Jan Hackel
The following code will fail with the message {noformat} [Static type checking] - No such property: x for class: java.lang.Object @ line 8, column 13. .map{ it.x } ^ {noformat} {code:groovy} @groovy.transform.CompileStatic class AssertJCollectionMappingTest { @org.junit.jupiter.api.Test void mapping() { def texts = somePojos() org.assertj.core.api.Assertions.assertThat(texts) .map{ it.x } .containsExactlyInAnyOrderElementsOf(['a', 'b']) } private static Collection<Pojo> somePojos() { return [new Pojo(x: 'a'), new Pojo(x: 'b')] } static class Pojo { String x } } {code} Changing the line to {noformat} .map({ it.x } as Function<Pojo, String>) {noformat} makes it compile but it is clumsy for more complicated types. It would be nice if Groovy was able to resolve the types without hints. -- This message was sent by Atlassian Jira (v8.20.10#820010)