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)

Reply via email to