[LL FIR] make script initializers independent

Now we can resolve all script declarations independently

^KT-65344 Fixed
This commit is contained in:
Dmitrii Gridin
2024-02-05 15:57:24 +01:00
committed by Space Team
parent d59b8b3244
commit 58ad26ee5b
26 changed files with 535 additions and 362 deletions
@@ -10,12 +10,12 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] compoundAssignOnVarScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-compoundAssignOnVarScript.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-compoundAssignOnVarScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] var i: R|kotlin/Int| = Int(1)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/Int|): R|kotlin/Unit|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] var i: R|kotlin/Int| = Int(1)
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int|
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] value: R|kotlin/Int|): R|kotlin/Unit|
[ResolvedTo(BODY_RESOLVE)] init {
R|/i| = R|/i|.R|kotlin/Int.plus|(Int(1))
@@ -8,8 +8,8 @@ String()
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] assignment.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-assignment.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-assignment.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -20,9 +20,7 @@ FILE: [ResolvedTo(IMPORTS)] assignment.kts
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] get(): R|kotlin/String|
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String|): R|kotlin/Unit|
public final [ResolvedTo(CONTRACTS)] fun execute(): R|kotlin/Unit| {
println#(version#)
}
public final [ResolvedTo(STATUS)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -30,33 +28,15 @@ FILE: [ResolvedTo(IMPORTS)] assignment.kts
^build R|/Builder.Builder|().R|kotlin/apply|<R|Builder|>(R|<local>/action|)
}
[ResolvedTo(BODY_RESOLVE)] init {
R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(123)
local final [ResolvedTo(BODY_RESOLVE)] class A : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor(): R|<local>/A| {
super<R|kotlin/Any|>()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public final [ResolvedTo(BODY_RESOLVE)] fun doo(): R|kotlin/Unit| {
}
}
this@R|special/anonymous|.R|/Builder.execute|()
}
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321)
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String()
@@ -8,8 +8,8 @@ this@R|special/anonymous|.R|/Builder.execute|()
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-callInsideStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-callInsideStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -48,16 +48,11 @@ FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321)
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String()
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
@@ -10,8 +10,8 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] firstStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-firstStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-firstStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4)
@@ -21,9 +21,6 @@ FILE: [ResolvedTo(IMPORTS)] firstStatement.kts
R|/foo|()
}
[ResolvedTo(BODY_RESOLVE)] init {
R|/bar|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
@@ -8,8 +8,8 @@ R|/foo|()
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-firstStatementCall.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-firstStatementCall.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4)
@@ -19,9 +19,6 @@ FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts
R|/foo|()
}
[ResolvedTo(BODY_RESOLVE)] init {
R|/bar|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
@@ -10,20 +10,16 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] secondStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-secondStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-secondStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4)
}
public? final? [ResolvedTo(RAW_FIR)] fun foo(): <implicit> { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/foo|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/bar|()
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
}
@@ -8,20 +8,16 @@ R|/bar|()
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] secondStatementCall.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-secondStatementCall.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-secondStatementCall.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4)
}
public? final? [ResolvedTo(RAW_FIR)] fun foo(): <implicit> { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/foo|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/bar|()
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
}
@@ -8,8 +8,8 @@ R|/builder|.R|/Builder.version| = String()
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-assignmentStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-assignmentStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -20,9 +20,7 @@ FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] get(): R|kotlin/String|
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String|): R|kotlin/Unit|
public final [ResolvedTo(CONTRACTS)] fun execute(): R|kotlin/Unit| {
println#(version#)
}
public final [ResolvedTo(STATUS)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
public final? [ResolvedTo(RAW_FIR)] class NestedBuilder : Builder {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedBuilder] constructor(): R|Builder.NestedBuilder| {
@@ -37,33 +35,15 @@ FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts
^build R|/Builder.Builder|().R|kotlin/apply|<R|Builder|>(R|<local>/action|)
}
[ResolvedTo(BODY_RESOLVE)] init {
R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(123)
local final [ResolvedTo(BODY_RESOLVE)] class A : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor(): R|<local>/A| {
super<R|kotlin/Any|>()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public final [ResolvedTo(BODY_RESOLVE)] fun doo(): R|kotlin/Unit| {
}
}
this@R|special/anonymous|.R|/Builder.execute|()
}
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321)
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String()
@@ -24,8 +24,8 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] scriptInitializer.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-scriptInitializer.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-scriptInitializer.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -71,16 +71,11 @@ FILE: [ResolvedTo(IMPORTS)] scriptInitializer.kts
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321)
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String()
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
@@ -24,8 +24,8 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-statement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -71,16 +71,11 @@ FILE: [ResolvedTo(IMPORTS)] statement.kts
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321)
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String()
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}