[ https://issues.apache.org/jira/browse/GROOVY-10979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-10979: --------------------------------- Language: groovy > Cannot provide method reference to a type parameter instantiated with a SAM > type > -------------------------------------------------------------------------------- > > Key: GROOVY-10979 > URL: https://issues.apache.org/jira/browse/GROOVY-10979 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Reporter: Thodoris Sotiropoulos > Priority: Minor > > I have the following program > {code} > import java.util.function.*; > import java.util.stream.*; > public class Test { > public static void test() { > Stream<Number> x = null; > BiFunction<Function<String, Integer>, Number, Function<String, > Integer>> y = null; > BinaryOperator<Function<String, Integer>> z = null; > x.<Function<String, Integer>>reduce(Test::m, y, z); // fails > x.reduce(Test::m, y, z); // fails > x.reduce((d) -> 1, y, z); // works > } > public static Integer m(String x) { return 1; } > } > {code} > h3. Actual behavior > {code} > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > test.groovy: 12: The argument is a method reference, but the parameter type > is not a functional interface > @ line 12, column 43. > ction<String, Integer>>reduce(Test::m, y > ^ > test.groovy: 13: The argument is a method reference, but the parameter type > is not a functional interface > @ line 13, column 16. > x.reduce(Test::m, y, z); // fails > ^ > 2 errors > {code} > h3. Expected behavior > Compile successfully > Tested against master (commit: 55c6edfd81a64ce759357a3976070c0811bff637) -- This message was sent by Atlassian Jira (v8.20.10#820010)