[ https://issues.apache.org/jira/browse/GROOVY-11258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17800736#comment-17800736 ]
Paul King commented on GROOVY-11258: ------------------------------------ Just to show the native way you'd do that assertion (without assertj): {code} void mapping() { assert somePojos()*.x.toSet() == ['a', 'b'] as Set } {code} > 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 > Priority: Major > > 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)