[LL FIR] rewrote in-block modifications logic

Now we will invalidate bodies for FIR declarations
immediately after in-block modifications in these declarations
We assume that such in-block modifications can happen
only under write action,
so it should be safe to make changes for FirFile

^KT-59687 Fixed
^KT-59199 Fixed
^KTIJ-26066 Fixed
This commit is contained in:
Dmitrii Gridin
2023-06-30 17:47:58 +02:00
parent a50efd7aa2
commit e354b2a900
108 changed files with 1642 additions and 403 deletions
@@ -0,0 +1,14 @@
BEFORE MODIFICATION:
public final [ResolvedTo(BODY_RESOLVE)] fun passLambdaValue([ResolvedTo(BODY_RESOLVE)] l: R|kotlin/contracts/ContractBuilder.() -> kotlin/Unit|): R|kotlin/Unit|
[Contract description] <
R|kotlin/contracts/contract|(R|<local>/l|)
>
{
{
R|kotlin/contracts/contract|(R|<local>/l|)
}
}
AFTER MODIFICATION:
public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun passLambdaValue([ResolvedTo(BODY_RESOLVE)] l: R|kotlin/contracts/ContractBuilder.() -> kotlin/Unit|): R|kotlin/Unit| { LAZY_BLOCK }