[ https://issues.apache.org/jira/browse/GROOVY-10054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17949669#comment-17949669 ]
Saravanan commented on GROOVY-10054: ------------------------------------ Will this be fixed in 5.x? Are there temporary local fixes I can apply to fix this error for me to proceed with my investigations? regards Saravanan > STC: Cannot infer lambda parameter types for a stream collector > --------------------------------------------------------------- > > Key: GROOVY-10054 > URL: https://issues.apache.org/jira/browse/GROOVY-10054 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Affects Versions: 4.0.0 > Reporter: Lyuben Atanasov > Assignee: Eric Milles > Priority: Major > > This is a follow-up to GROOVY-10049. After the issue there had been fixed I > was able to progress further with a chain of Stream method calls. However, > the fix doesn't seem to cover the following case: > {code} > import java.util.stream.Collectors; > class Test { > static interface Named { > String getName(); > } > <T extends Named> Map<String, List<T>> group(Set<T> namedObjects) { > return namedObjects.stream() > .collect(Collectors.groupingBy(named -> > named.getName())); > } > > } > {code} > With static type checking enabled, an error is produced: > {noformat} > Script_ce61a645759c941d687680111f9bedbd.groovy: 11: [Static type checking] - > Cannot find matching method java.lang.Object#getName(). Please check if the > declared type is correct and if the method exists. > @ line 11, column 44. > ollectors.groupingBy(named -> named.getN > {noformat} > The difference between this issue and GROOVY-10049 is that the lambda passed > here is not directly assigned to a Stream method. Of course, the issue is > probably not limited to Collectors, but this is how I am able to reproduce it. > I've tested this against > https://github.com/apache/groovy/commit/e07f0112c5eff8d9c6828bd0ddb69e4b7f7cc1d6 -- This message was sent by Atlassian Jira (v8.20.10#820010)