Christopher Smith created GROOVY-11241:
------------------------------------------
Summary: Regression in STC generics solution
Key: GROOVY-11241
URL: https://issues.apache.org/jira/browse/GROOVY-11241
Project: Groovy
Issue Type: Bug
Components: Static Type Checker
Affects Versions: 4.0.16
Reporter: Christopher Smith
The following code, which works in 4.0.14 and below, incorrectly produces an
error in 4.0.16.
Expected result: {{mapTry(Option::get)}} unwraps the {{Try<Option<Integer>>}}
into a {{Try<Integer>}}
Actual:
{code}
[Static type checking] - Incompatible generic argument types. Cannot assign
io.vavr.control.Try<io.vavr.control.Option<java.lang.Integer>> to:
io.vavr.control.Try<java.lang.Integer>
{code}
{code}
import groovy.transform.CompileStatic
import io.vavr.control.Option
import io.vavr.control.Try
@Grab('io.vavr:vavr:0.10.3')
@CompileStatic
class Repro {
Option<Integer> option() {
Option.of(3)
}
Try<Integer> repro() {
Try.of { option() }
.mapTry(Option::get)
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)