| flowchart TD | |
| classDef nowrapClass text-align:center,white-space:nowrap; | |
| classDef callStyle fill:#f2debb,stroke:#333,stroke-width:4px; | |
| classDef candidateStyle fill:#f2e5ce,stroke:#333,stroke-width:4px; | |
| classDef stageStyle fill:#c8f0f7,stroke:#333,stroke-width:4px; | |
| classDef readinessStyle fill:#fff4d6,stroke:#777,stroke-width:1px; | |
| session0["<tt>Source session for module <main></tt>"] | |
| class session0 nowrapClass; | |
| session0 --> call1 | |
| call1["Call 1<br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>IllegalStateException#(String(Something is not defined.))</tt></pre>"] | |
| class call1 nowrapClass; | |
| class call1 callStyle; | |
| call1 --> candidate2 | |
| candidate2["Candidate 1: <tt>FirConstructorSymbol java/lang/IllegalStateException.IllegalStateException</tt><br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>constructor(p0: String!): {kotlin/IllegalStateException=} IllegalStateException</tt></pre>"] | |
| class candidate2 nowrapClass; | |
| class candidate2 candidateStyle; | |
| candidate2 --> stage3 | |
| stage3["Resolution Stages > CheckArguments"] | |
| class stage3 nowrapClass; | |
| class stage3 stageStyle; | |
| constraint4["<tt>String <: String!</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Argument String(Something is not defined.)</tt></pre></i>"] | |
| class constraint4 nowrapClass; | |
| stage3 ~~~ constraint4 | |
| constraint4 ~~~ stage5 | |
| stage5["Continue Resolution Stages > CheckLambdaAgainstTypeVariableContradiction"] | |
| class stage5 nowrapClass; | |
| class stage5 stageStyle; | |
| constraint6["<tt>{IllegalStateException=} IllegalStateException <: Throwable</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>ExpectedType for some call</tt></pre></i>"] | |
| class constraint6 nowrapClass; | |
| stage5 ~~~ constraint6 | |
| constraint6 ~~~ call7 | |
| call7["Call 2<br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>parse#(R|<local>/data|)</tt></pre>"] | |
| class call7 nowrapClass; | |
| class call7 callStyle; | |
| call7 --> candidate8 | |
| candidate8["Candidate 1: <tt>FirNamedFunctionSymbol /parse</tt><br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>fun <T> parse(data: String): T</tt></pre>"] | |
| class candidate8 nowrapClass; | |
| class candidate8 candidateStyle; | |
| candidate8 --> stage9 | |
| stage9["Resolution Stages > CreateFreshTypeVariableSubstitutorStage"] | |
| class stage9 nowrapClass; | |
| class stage9 stageStyle; | |
| stage9 ~~~ newVariable10 | |
| newVariable10["New <tt>TypeVariable(T)</tt> for <tt>FirNamedFunctionSymbol /parse</tt>s parameter 0"] | |
| class newVariable10 nowrapClass; | |
| newVariable10 ~~~ stage11 | |
| stage11["Resolution Stages > CheckArguments"] | |
| class stage11 nowrapClass; | |
| class stage11 stageStyle; | |
| constraint12["<tt>String <: String</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Argument R|<local>/data|</tt></pre></i>"] | |
| class constraint12 nowrapClass; | |
| stage11 ~~~ constraint12 | |
| constraint12 ~~~ stage13 | |
| stage13["Resolution Stages > CheckLambdaAgainstTypeVariableContradiction"] | |
| class stage13 nowrapClass; | |
| class stage13 stageStyle; | |
| constraint14["<tt>TypeVariable(T) <: dynamic</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>ExpectedType for some call</tt></pre></i>"] | |
| class constraint14 nowrapClass; | |
| stage13 ~~~ constraint14 | |
| constraint14 ~~~ stage15 | |
| stage15["Call Completion"] | |
| class stage15 nowrapClass; | |
| class stage15 stageStyle; | |
| stage15 ~~~ variableReadiness16 | |
| variableReadiness16["Choose <tt>TypeVariable(T)</tt> with <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>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 | |
| )</tt></pre>"] | |
| class variableReadiness16 nowrapClass; | |
| class variableReadiness16 readinessStyle; | |
| variableReadiness16 ~~~ call17 | |
| call17["Call 3<br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>when () { | |
| ==(this@R|/Test|.R|/Test.something|, Null(null)) -> { | |
| throw R|java/lang/IllegalStateException.IllegalStateException|(String(Something is not defined.)) | |
| } | |
| else -> { | |
| R?C|/parse|(R|<local>/data|) | |
| } | |
| } | |
| </tt></pre>"] | |
| class call17 nowrapClass; | |
| class call17 callStyle; | |
| call17 --> candidate18 | |
| candidate18["Candidate 1: <tt>FirSyntheticFunctionSymbol _synthetic/WHEN_CALL</tt><br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>fun <K> WHEN_CALL(vararg branches: K): K | |
| </tt></pre>"] | |
| class candidate18 nowrapClass; | |
| class candidate18 candidateStyle; | |
| candidate18 --> stage19 | |
| stage19["Resolution Stages > CreateFreshTypeVariableSubstitutorStage"] | |
| class stage19 nowrapClass; | |
| class stage19 stageStyle; | |
| stage19 ~~~ newVariable20 | |
| newVariable20["New <tt>TypeVariable(K)</tt> for <tt>FirSyntheticFunctionSymbol _synthetic/WHEN_CALL</tt>s parameter 0"] | |
| class newVariable20 nowrapClass; | |
| newVariable20 ~~~ stage21 | |
| stage21["Resolution Stages > CheckArguments"] | |
| class stage21 nowrapClass; | |
| class stage21 stageStyle; | |
| constraint22["<tt>Nothing <: TypeVariable(K)</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Argument throw R|java/lang/IllegalStateException.IllegalStateException|(String(Something is not defined.))</tt></pre></i>"] | |
| class constraint22 nowrapClass; | |
| stage21 ~~~ constraint22 | |
| constraint23["<tt>TypeVariable(T) <: TypeVariable(K)</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Argument R?C|/parse|(R|<local>/data|)</tt></pre></i>"] | |
| class constraint23 nowrapClass; | |
| stage21 ~~~ constraint23 | |
| constraint22 ~~~ stage24 | |
| constraint23 ~~~ stage24 | |
| stage24["Resolution Stages > CheckIncompatibleTypeVariableUpperBounds"] | |
| class stage24 nowrapClass; | |
| class stage24 stageStyle; | |
| constraint25["<tt>TypeVariable(K) == dynamic</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>ExpectedType for some call</tt></pre></i>"] | |
| class constraint25 nowrapClass; | |
| stage24 ~~~ constraint25 | |
| constraint26["<tt>TypeVariable(T) <: dynamic</tt>"] | |
| class constraint26 nowrapClass; | |
| constraint23 --> constraint26 | |
| constraint25 --> constraint26 | |
| constraint26 ~~~ stage27 | |
| stage27["Call Completion"] | |
| class stage27 nowrapClass; | |
| class stage27 stageStyle; | |
| stage27 ~~~ variableReadiness28 | |
| variableReadiness28["Choose <tt>TypeVariable(T)</tt> with <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>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 | |
| true HAS_NO_EXPLICIT_LOWER_NOTHING_CONSTRAINT | |
| false HAS_PROPER_EQUALITY_CONSTRAINT | |
| false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT | |
| )</tt></pre>"] | |
| class variableReadiness28 nowrapClass; | |
| class variableReadiness28 readinessStyle; | |
| constraint30["<tt>TypeVariable(T) == dynamic</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Fix variable T</tt></pre></i>"] | |
| class constraint30 nowrapClass; | |
| variableReadiness28 ~~~ constraint30 | |
| constraint31["<tt>dynamic <: TypeVariable(K)</tt>"] | |
| class constraint31 nowrapClass; | |
| constraint30 --> constraint31 | |
| constraint23 --> constraint31 | |
| constraint32["<tt>dynamic <: TypeVariable(K)</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Fix variable T</tt></pre></i>"] | |
| class constraint32 nowrapClass; | |
| variableReadiness28 ~~~ constraint32 | |
| constraint31 ~~~ variableReadiness29 | |
| constraint32 ~~~~ variableReadiness29 | |
| variableReadiness29["Choose <tt>TypeVariable(K)</tt> with <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>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 | |
| true HAS_PROPER_EQUALITY_CONSTRAINT | |
| false HAS_PROPER_NON_NOTHING_NON_UPPER_CONSTRAINT | |
| )</tt></pre>"] | |
| class variableReadiness29 nowrapClass; | |
| class variableReadiness29 readinessStyle; | |
| constraint33["<tt>TypeVariable(K) == dynamic</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>Fix variable K</tt></pre></i>"] | |
| class constraint33 nowrapClass; | |
| variableReadiness29 ~~~ constraint33 | |
| constraint33 ~~~ call34 | |
| call34["Call 4<br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>TODO#()</tt></pre>"] | |
| class call34 nowrapClass; | |
| class call34 callStyle; | |
| call34 --> candidate35 | |
| candidate35["Candidate 1: <tt>FirNamedFunctionSymbol kotlin/TODO</tt><br><br><pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>@InlineOnly() fun TODO(): Nothing | |
| </tt></pre>"] | |
| class candidate35 nowrapClass; | |
| class candidate35 candidateStyle; | |
| candidate35 --> stage36 | |
| stage36["Continue Resolution Stages > CheckLambdaAgainstTypeVariableContradiction"] | |
| class stage36 nowrapClass; | |
| class stage36 stageStyle; | |
| constraint37["<tt>Nothing <: T</tt><br><br><i><div style="display: inline-block;vertical-align: middle;">from</div> <pre style="display: inline-block;vertical-align: middle;text-align: left;margin: 0;"><tt>ExpectedType for some call</tt></pre></i>"] | |
| class constraint37 nowrapClass; | |
| stage36 ~~~ constraint37 | |
| linkStyle 4 stroke:#990000 | |
| linkStyle 6 stroke:#009999 | |
| linkStyle 12 stroke:#4c9900 | |
| linkStyle 14 stroke:#4c0099 | |
| linkStyle 23 stroke:#994900 | |
| linkStyle 24 stroke:#004f99 | |
| linkStyle 26 stroke:#004f99 | |
| linkStyle 27 stroke:#039900 | |
| linkStyle 28 stroke:#950099 | |
| linkStyle 31 stroke:#992400 | |
| linkStyle 32 stroke:#004f99 | |
| linkStyle 34 stroke:#007499 | |
| linkStyle 35 stroke:#279900 | |
| linkStyle 37 stroke:#710099 | |
| style constraint4 stroke:#990000; | |
| style constraint6 stroke:#009999; | |
| style constraint12 stroke:#4c9900; | |
| style constraint14 stroke:#4c0099; | |
| style constraint22 stroke:#994900; | |
| style constraint23 stroke:#004f99; | |
| style constraint25 stroke:#039900; | |
| style constraint26 stroke:#950099; | |
| style constraint30 stroke:#992400; | |
| style constraint31 stroke:#007499; | |
| style constraint32 stroke:#279900; | |
| style constraint33 stroke:#710099; |