From a69eaa0ea33f54b9abde649e1c1f4e8240027563 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 28 Nov 2023 10:16:53 +0100 Subject: [PATCH] K2 Scripting: fix testdata changed after script statements wrapping --- .../moreStatementsInCopy.context.txt | 6 +- .../moreStatementsInCopy.fir.txt | 19 +- .../testData/dependentCopy/script.context.txt | 2 +- .../testData/dependentCopy/script.fir.txt | 5 +- .../dependentCopy/scriptFunction.context.txt | 2 +- .../scriptInsideLastStatement.context.txt | 2 +- .../scriptLastStatement.context.txt | 2 +- .../scriptLastStatementCall.context.txt | 2 +- .../dependentCopy/scriptStatement.context.txt | 6 +- .../scriptStatementCall.context.txt | 6 +- .../fileStructure/script.lazy.resolve.txt | 25 ++- .../secondLevelFunction.lazy.resolve.txt | 36 ++-- .../secondLevelFunction2.lazy.resolve.txt | 36 ++-- .../calls/compoundAssignOnVarScript.txt | 16 +- .../getOrBuildFir/expressions/assignment.txt | 34 ++-- .../expressions/callInsideFunction.txt | 10 +- .../expressions/callInsideStatement.txt | 34 ++-- .../wholeDeclaration/assignmentStatement.txt | 34 ++-- .../getOrBuildFir/wholeDeclaration/class.txt | 10 +- .../wholeDeclaration/function.txt | 10 +- .../wholeDeclaration/scriptInitializer.txt | 76 +++---- .../wholeDeclaration/statement.txt | 76 +++---- .../testData/lazyResolve/script.txt | 191 ++++++++++++------ .../testData/lazyResolve/script2.txt | 129 ++++++++---- .../testData/lazyResolve/script3.txt | 136 +++++++++---- .../testData/lazyResolve/statement.txt | 70 ++++--- .../lazyResolve/statementTransformation.txt | 51 +++-- .../scriptStatementLevel.after.txt | 19 +- .../scriptStatementLevel.before.txt | 19 +- .../scriptStatementLevel.lazyResolve.txt | 159 +++------------ ...orrectAccessorsPropagationScript.after.txt | 6 +- ...rrectAccessorsPropagationScript.before.txt | 6 +- ...AccessorsPropagationScript.lazyResolve.txt | 82 +++++--- ...TypeFromIncorrectAccessorsScript.after.txt | 6 +- ...ypeFromIncorrectAccessorsScript.before.txt | 6 +- ...omIncorrectAccessorsScript.lazyResolve.txt | 82 +++++--- .../declarations/script.lazyBodies.txt | 17 +- ...cturingWithAnnotation.annotationOwners.txt | 12 +- ...DestructuringWithAnnotation.lazyBodies.txt | 11 +- ...tementLevelDestructuringWithAnnotation.txt | 19 +- ...tationAsLastStatement.annotationOwners.txt | 12 +- ...thAnnotationAsLastStatement.lazyBodies.txt | 20 +- ...ructuringWithAnnotationAsLastStatement.txt | 20 +- 43 files changed, 865 insertions(+), 657 deletions(-) diff --git a/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.context.txt index c55bb519fe0..3804fad65ba 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.context.txt @@ -31,11 +31,11 @@ Tower Data Context: lval args: R|kotlin/Array| public final fun scriptFunction(): R|kotlin/Int| - R|/scriptFunction|() + init public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int| - R|/scriptFunction|() + init public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| - R|/foo|(R|/scriptFunction|(), = foo@fun (it: R|kotlin/Int|): R|kotlin/Unit| ) + init public final val $$result: R|kotlin/Int| public get(): R|kotlin/Int| Type: kotlin.script.templates.standard.ScriptTemplateWithArgs diff --git a/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.fir.txt b/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.fir.txt index 0d09277dc39..deb63c3ed5c 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.fir.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/moreStatementsInCopy.fir.txt @@ -11,19 +11,28 @@ SCRIPT: [ResolvedTo(BODY_RESOLVE)] ^scriptFunction Int(42) } - R|/scriptFunction|() + [ResolvedTo(BODY_RESOLVE)] init { + R|/scriptFunction|() + } + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun unusedScriptFunction([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] p: R|kotlin/String|): R|kotlin/Int| { ^unusedScriptFunction Int(22) } - R|/scriptFunction|() + [ResolvedTo(BODY_RESOLVE)] init { + R|/scriptFunction|() + } + public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] i: R|kotlin/Int|, [ResolvedTo(CONTRACTS)] action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| { action#(i#) } - R|/foo|(R|/scriptFunction|(), = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] foo@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Unit| { - R|/scriptFunction|() + [ResolvedTo(BODY_RESOLVE)] init { + R|/foo|(R|/scriptFunction|(), = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function1] foo@fun ([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Unit| { + R|/scriptFunction|() + } + ) } - ) + public final [ResolvedTo(BODY_RESOLVE)] val $$result: R|kotlin/Int| = R|/unusedScriptFunction|(String(str)) public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/dependentCopy/script.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/script.context.txt index 8f6e6da2840..15302011885 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/script.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/script.context.txt @@ -35,7 +35,7 @@ Tower Data Context: public? final? class ScriptClass : R|kotlin/Any| public final fun scriptFunction(): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): - R|/scriptFunction|() + init public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public final val $$result: R|kotlin/Unit| public get(): R|kotlin/Unit| diff --git a/analysis/low-level-api-fir/testData/dependentCopy/script.fir.txt b/analysis/low-level-api-fir/testData/dependentCopy/script.fir.txt index 2edad3d8a52..161edf59633 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/script.fir.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/script.fir.txt @@ -23,7 +23,10 @@ SCRIPT: [ResolvedTo(BODY_RESOLVE)] public? final? [ResolvedTo(RAW_FIR)] fun unusedScriptFunction([ResolvedTo(RAW_FIR)] p: String): { LAZY_BLOCK } - R|/scriptFunction|() + [ResolvedTo(BODY_RESOLVE)] init { + R|/scriptFunction|() + } + public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] i: R|kotlin/Int|, [ResolvedTo(CONTRACTS)] action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| { action#(i#) } diff --git a/analysis/low-level-api-fir/testData/dependentCopy/scriptFunction.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/scriptFunction.context.txt index 3b06fa2e0d0..a4502098451 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/scriptFunction.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/scriptFunction.context.txt @@ -37,7 +37,7 @@ Tower Data Context: public? final? class ScriptClass : R|kotlin/Any| public? final? fun scriptFunction(): public? final? fun unusedScriptFunction(p: String): - scriptFunction#() + init public? final? fun foo(i: Int, action: ( (Int) -> Unit )): R|kotlin/Unit| public final val $$result: public get(): diff --git a/analysis/low-level-api-fir/testData/dependentCopy/scriptInsideLastStatement.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/scriptInsideLastStatement.context.txt index 1b083d35b6c..528e3e88be5 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/scriptInsideLastStatement.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/scriptInsideLastStatement.context.txt @@ -35,7 +35,7 @@ Tower Data Context: public? final? class ScriptClass : R|kotlin/Any| public final fun scriptFunction(): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): - R|/scriptFunction|() + init public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public final val $$result: R|kotlin/Unit| public get(): R|kotlin/Unit| diff --git a/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatement.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatement.context.txt index 659d03d3d2f..e297b55ecce 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatement.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatement.context.txt @@ -35,7 +35,7 @@ Tower Data Context: public? final? class ScriptClass : R|kotlin/Any| public final fun scriptFunction(): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): - R|/scriptFunction|() + init public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public final val $$result: R|kotlin/Unit| public get(): R|kotlin/Unit| diff --git a/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatementCall.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatementCall.context.txt index 6aca4a4d5fc..f4e48b43c2a 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatementCall.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/scriptLastStatementCall.context.txt @@ -35,7 +35,7 @@ Tower Data Context: public? final? class ScriptClass : R|kotlin/Any| public final fun scriptFunction(): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): - R|/scriptFunction|() + init public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public final val $$result: R|kotlin/Unit| public get(): R|kotlin/Unit| diff --git a/analysis/low-level-api-fir/testData/dependentCopy/scriptStatement.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/scriptStatement.context.txt index b7f7110e4d1..97c378d8942 100644 --- a/analysis/low-level-api-fir/testData/dependentCopy/scriptStatement.context.txt +++ b/analysis/low-level-api-fir/testData/dependentCopy/scriptStatement.context.txt @@ -35,9 +35,13 @@ Tower Data Context: public? final? class ScriptClass : R|kotlin/Any| public final fun scriptFunction(): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): - R|/scriptFunction|() + init public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public final val $$result: R|kotlin/Unit| public get(): R|kotlin/Unit| Type: kotlin.script.templates.standard.ScriptTemplateWithArgs Label: