[ https://issues.apache.org/jira/browse/GROOVY-11258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17801222#comment-17801222 ]
Eric Milles edited comment on GROOVY-11258 at 12/29/23 4:57 PM: ---------------------------------------------------------------- Item 1 from above looks like this. It takes some one-time setup, but doesn't require any change in how you write tests. !screenshot-1.png! was (Author: emilles): Item 1 from above does work and looks like this. It takes some one-time setup, but does not require any change in how you write tests. !screenshot-1.png! > 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 > Assignee: Eric Milles > Priority: Major > Attachments: screenshot-1.png > > > 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)