blob: eff786148991c96b3a54d4f1bfca5b7ad59b379d [file] [view]
## `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 /ifTrue`s parameter 0
2. `TypeVariable(T) <: kotlin/Any` _from DeclaredUpperBound_
##### Resolution Stages > CheckArguments:
1. `kotlin/Boolean <: kotlin/Boolean` _from Argument R|<local>/flag|_
2. `() -> TypeVariable(T)? <: () -> TypeVariable(T)?` _from Argument <L> = ifTrue <implicit>.<anonymous>(): <implicit> <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|<local>/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 /parse`s parameter 0
2. `TypeVariable(P) <: kotlin/Any` _from DeclaredUpperBound_
##### Resolution Stages > CheckArguments:
1. `kotlin/String <: kotlin/String` _from Argument R|/decode|(R|<local>/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_CALL`s parameter 0
##### Resolution Stages > CheckArguments:
1. `TypeVariable(P) <: TypeVariable(K)` _from Argument R?C|/parse|(R|/decode|(R|<local>/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_