[LL FIR] skip implicit type resolution for declarations without implicit type

This also fixes non-resolved contract calls in the case
of wrong contract description.
And we can avoid body calculation.

^KT-56551
This commit is contained in:
Dmitrii Gridin
2023-09-19 19:27:12 +02:00
committed by Space Team
parent 7ab8239c6e
commit a128cbc97a
13 changed files with 63 additions and 88 deletions
@@ -1,15 +1,15 @@
BEFORE MODIFICATION:
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
[Contract description] <
<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
^ <Unresolved name: req>#
}
)
>
{
{
contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
req#
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
^ <Unresolved name: req>#
}
)
}