Source session for module <main>

Call 1

TODO#()

Candidate 1: FirNamedFunctionSymbol kotlin/TODO --- @InlineOnly() fun TODO(): Nothing

Continue Resolution Stages > CheckLambdaAgainstTypeVariableContradiction:
  1. kotlin/Nothing <: P from ExpectedType for some call

Call 2

ifTrue#(R|<local>/flag|, <L> = ifTrue@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown>  {
    try {
        parse#(decode#(token#))
    }
    catch (e: Exception) {
        Null(null)
    }

}
)

Candidate 1: FirNamedFunctionSymbol /ifTrue --- fun <T : Any> ifTrue(condition: Boolean, exec: () -> T?): T?

Resolution Stages > CreateFreshTypeVariableSubstitutorStage:
  1. New TypeVariable(T) for FirNamedFunctionSymbol /ifTrues parameter 0
  2. TypeVariable(T) <: kotlin/Any from DeclaredUpperBound
Resolution Stages > CheckArguments:
  1. kotlin/Boolean <: kotlin/Boolean from Argument R|/flag|
  2. () -> TypeVariable(T)? <: () -> TypeVariable(T)? from Argument = ifTrue .(): <inline=Unknown> {↩ try {↩ parse#(decode#(token#))↩ }↩ catch (e: Exception) {↩ Null(null)↩ }↩↩}↩
Resolution Stages > CheckLambdaAgainstTypeVariableContradiction:
  1. TypeVariable(T)? <: Result? from ExpectedType for some call
    1. TypeVariable(T) <: Result?

Call 3

decode#(R|<local>/token|)

Candidate 1: FirNamedFunctionSymbol /decode --- fun decode(src: String): String

Resolution Stages > CheckArguments:
  1. kotlin/String <: kotlin/String from Argument R|/token|

Call 4

parse#(R|/decode|(R|<local>/token|))

Candidate 1: FirNamedFunctionSymbol /parse --- fun <reified P : Any> parse(text: String): P

Resolution Stages > CreateFreshTypeVariableSubstitutorStage:
  1. New TypeVariable(P) for FirNamedFunctionSymbol /parses parameter 0
  2. TypeVariable(P) <: kotlin/Any from DeclaredUpperBound
Resolution Stages > CheckArguments:
  1. kotlin/String <: kotlin/String from Argument R|/decode|(R|/token|)
Call Completion:
  1. Choose TypeVariable(P) with Readiness( false ALLOWED false HAS_PROPER_CONSTRAINTS false HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES false HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT false HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES false HAS_PROPER_NON_TRIVIAL_CONSTRAINTS false HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT false HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )

Call 5

try {
    R?C|/parse|(R|/decode|(R|<local>/token|))
}
catch (e: R|{kotlin/Exception=} java/lang/Exception|) {
    Null(null)
}

Candidate 1: FirSyntheticFunctionSymbol _synthetic/TRY_CALL --- fun <K> TRY_CALL(vararg branches: K): K

Resolution Stages > CreateFreshTypeVariableSubstitutorStage:
  1. New TypeVariable(K) for FirSyntheticFunctionSymbol _synthetic/TRY_CALLs parameter 0
Resolution Stages > CheckArguments:
  1. TypeVariable(P) <: TypeVariable(K) from Argument R?C|/parse|(R|/decode|(R|/token|))
  2. kotlin/Nothing? <: TypeVariable(K) from Argument Null(null)
Call Completion:
  1. Choose TypeVariable(K) with Readiness( false ALLOWED false HAS_PROPER_CONSTRAINTS false HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES false HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT false HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES false HAS_PROPER_NON_TRIVIAL_CONSTRAINTS false HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT false HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
    1. TypeVariable(P) is Readiness( false ALLOWED false HAS_PROPER_CONSTRAINTS false HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES false HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT false HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES false HAS_PROPER_NON_TRIVIAL_CONSTRAINTS false HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT false HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )

Call 2

ifTrue#(R|<local>/flag|, <L> = ifTrue@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown>  {
    try {
        parse#(decode#(token#))
    }
    catch (e: Exception) {
        Null(null)
    }

}
)

Candidate 1: FirNamedFunctionSymbol /ifTrue --- fun <T : Any> ifTrue(condition: Boolean, exec: () -> T?): T?

Continue Call Completion:
  1. TypeVariable(K) <: TypeVariable(T)? from LambdaArgument
    1. TypeVariable(K) & Any <: TypeVariable(T)
  2. Combine TypeVariable(K) & Any <: TypeVariable(T) with TypeVariable(T) <: kotlin/Any
    1. TypeVariable(K) <: kotlin/Any?
  3. Combine TypeVariable(K) & Any <: TypeVariable(T) with TypeVariable(T) <: Result?
    1. TypeVariable(K) <: Result?
  4. Combine TypeVariable(P) <: TypeVariable(K) with TypeVariable(K) <: TypeVariable(T)?
    1. TypeVariable(P) & Any <: TypeVariable(T)
    2. TypeVariable(P) <: TypeVariable(T)?
  5. Combine kotlin/Nothing? <: TypeVariable(K) with TypeVariable(K) <: TypeVariable(T)?
    1. kotlin/Nothing <: TypeVariable(T)
  6. Combine TypeVariable(P) <: TypeVariable(K) with TypeVariable(K) <: kotlin/Any?
    1. TypeVariable(P) <: kotlin/Any?
  7. Combine TypeVariable(P) <: TypeVariable(K) with TypeVariable(K) <: Result?
    1. TypeVariable(P) <: Result?
  8. Choose TypeVariable(P) with Readiness( true ALLOWED true HAS_PROPER_CONSTRAINTS true HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES true HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT true HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND true REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT true HAS_PROPER_NON_ILT_CONSTRAINT true HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
    1. TypeVariable(T) is Readiness( true ALLOWED true HAS_PROPER_CONSTRAINTS true HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES true HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT true HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT true HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
    2. TypeVariable(K) is Readiness( true ALLOWED true HAS_PROPER_CONSTRAINTS true HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES true HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT true HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT true HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
  9. TypeVariable(P) == Result from Fix variable P
  10. Combine TypeVariable(P) == Result with TypeVariable(P) <: TypeVariable(K)
    1. Result <: TypeVariable(K)
  11. Combine TypeVariable(P) == Result with TypeVariable(P) <: TypeVariable(T)?
    1. Result <: TypeVariable(T)
  12. Choose TypeVariable(T) with Readiness( true ALLOWED true HAS_PROPER_CONSTRAINTS true HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES true HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT true HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT true HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT true HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
    1. TypeVariable(K) is Readiness( true ALLOWED true HAS_PROPER_CONSTRAINTS true HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES true HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT true HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT true HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT true HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
  13. TypeVariable(T) == Result from Fix variable T
  14. Choose TypeVariable(K) with Readiness( true ALLOWED true HAS_PROPER_CONSTRAINTS true HAS_NO_OUTER_TYPE_VARIABLE_DEPENDENCY false HAS_CAPTURED_UPPER_BOUND_WITH_SELF_TYPES true HAS_PROPER_NON_SELF_TYPE_BASED_CONSTRAINT true HAS_NO_DEPENDENCIES_TO_OTHER_VARIABLES true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS true HAS_PROPER_NON_TRIVIAL_CONSTRAINTS_OTHER_THAN_INCORPORATED_FROM_DECLARED_UPPER_BOUND false REIFIED false HAS_PROPER_FLEXIBLE_LOWER_CONSTRAINT true HAS_PROPER_NON_ILT_CONSTRAINT false HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT false HAS_PROPER_EQUALITY_CONSTRAINT true HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT )
  15. TypeVariable(K) == Result? from Fix variable K