Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0.6
Description
Java permits method references to specify a subclass in ContainingType, but the STC produces an error unless the exact declaring type is supplied.
@Grab('io.vavr:vavr:0.10.4') import io.vavr.control.Option Option<String> supply() { Option.of('hello') } @groovy.transform.CompileStatic void test() { println supply().map(Option::toTry) // ^ declared on Value } test()
produces
Failed to find the expected method[toTry(java.lang.String)] in the type[io.vavr.control.Option] @ line 8, column 24.
println supply().map(Option::toTry)
(which also suggests that the STC, not traversing supertypes to find a ::toTry, has misinferred the signature).