[LL FIR] support parameters resolution

Script parameters now can be resolved independently of the script.
But, as parameters are part of the script, their resolve will be called
before the script.

^KT-66276 Fixed
This commit is contained in:
Dmitrii Gridin
2024-03-01 19:01:39 +01:00
committed by Space Team
parent 150af66b55
commit d5cfea330b
569 changed files with 1816 additions and 1964 deletions
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] arrayAccessExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-arrayAccessExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: R|kotlin/collections/List<kotlin/Int>|): R|kotlin/Unit| {
[ResolvedTo(BODY_RESOLVE)] lval a: R|kotlin/Int| = R|<local>/x|.R|SubstitutionOverride<kotlin/collections/List.get: R|kotlin/Int|>|(Int(1))
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] arrayIndexExpressionWithIncScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-arrayIndexExpressionWithIncScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun main([ResolvedTo(BODY_RESOLVE)] args: R|kotlin/Array<kotlin/String>|): R|kotlin/Unit| {
[ResolvedTo(BODY_RESOLVE)] lval a: R|java/util/ArrayList<kotlin/String>| = R|java/util/ArrayList.ArrayList|<R|kotlin/String|>()
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] assignment.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-assignment.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -40,4 +40,4 @@ FILE: [ResolvedTo(IMPORTS)] assignment.kts
[ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String()
}
}
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] binaryExpressionOperatorScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-binaryExpressionOperatorScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] binaryExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-binaryExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
@@ -10,7 +10,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] blockExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-blockExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit| {
}
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] boolLiteralScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-boolLiteralScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Boolean| = Boolean(true)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Boolean|
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] callInsideFunction.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-callInsideFunction.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -37,4 +37,4 @@ FILE: [ResolvedTo(IMPORTS)] callInsideFunction.kts
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
}
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-callInsideStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -55,4 +55,4 @@ FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
}
@@ -11,7 +11,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] firstStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-firstStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4)
@@ -23,4 +23,4 @@ FILE: [ResolvedTo(IMPORTS)] firstStatement.kts
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-firstStatementCall.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4)
@@ -21,4 +21,4 @@ FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] forExpressionRangeScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-forExpressionRangeScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
{
@@ -14,7 +14,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] forExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-forExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
{
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] forExpressionVariableScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-forExpressionVariableScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
{
@@ -16,7 +16,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] ifExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-ifExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: R|kotlin/Any|): R|kotlin/String| {
^foo when () {
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] incExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-incExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun main([ResolvedTo(BODY_RESOLVE)] args: R|kotlin/Array<kotlin/String>|): R|kotlin/Unit| {
[ResolvedTo(BODY_RESOLVE)] lvar nextUnnamedLibraryIndex: R|kotlin/Int| = Int(1)
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] insidePlusAssignTargetScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-insidePlusAssignTargetScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: R|kotlin/collections/MutableMap<kotlin/Int, kotlin/collections/MutableList<kotlin/String>>|): R|kotlin/Unit| {
R|<local>/x|.R|kotlin/collections/getOrPut|<R|kotlin/Int|, R|kotlin/collections/MutableList<kotlin/String>|>(Int(1), <L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function0<V>] getOrPut@fun <anonymous>(): R|kotlin/collections/MutableList<kotlin/String>| <inline=Inline, kind=UNKNOWN> {
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] intLiteralScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-intLiteralScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int| = Int(1)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] isExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-isExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: R|kotlin/Any|): R|kotlin/Boolean| {
^foo (R|<local>/x| is R|kotlin/String|)
@@ -14,7 +14,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] objectLiteralExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-objectLiteralExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Any| = object : R|kotlin/Any| {
private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] parenthesizedExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-parenthesizedExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(2))
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
@@ -11,7 +11,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] secondStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-secondStatement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(RAW_FIR)] fun foo(): <implicit> { LAZY_BLOCK }
@@ -22,4 +22,4 @@ FILE: [ResolvedTo(IMPORTS)] secondStatement.kts
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
}
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] secondStatementCall.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-secondStatementCall.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(RAW_FIR)] fun foo(): <implicit> { LAZY_BLOCK }
@@ -20,4 +20,4 @@ FILE: [ResolvedTo(IMPORTS)] secondStatementCall.kts
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| {
}
}
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] stringLiteralScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-stringLiteralScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/String| = String(string)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String|
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] stringTemplateExpressionEntryScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-stringTemplateExpressionEntryScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/String| = <strcat>(String(string ), Int(1).R|kotlin/Int.plus|(Int(2)), String( template))
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String|
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] throwExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-throwExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit| {
throw R|java/lang/IllegalStateException.IllegalStateException|()
@@ -15,7 +15,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] tryExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-tryExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit| {
try {
@@ -16,7 +16,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] whenExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-whenExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] x: R|kotlin/Any|): R|kotlin/String| {
^foo when (R|<local>/x|) {
@@ -10,7 +10,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] whileExpressionScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-whileExpressionScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
while(Boolean(true)) {
@@ -9,7 +9,7 @@ FIR FILE:
FILE: [ResolvedTo(IMPORTS)] wholeStringTemplateScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-wholeStringTemplateScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
[ResolvedTo(TYPES)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/String| = <strcat>(String(string ), Int(1).R|kotlin/Int.plus|(Int(2)), String( template))
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String|