From 2f093e76b017ef22a65e7b9c70690725cddaa5dd Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 13 Oct 2020 22:55:28 +0300 Subject: [PATCH] FIR IDE: render resolve phase for lazy resolve tests --- .../testdata/lazyResolve/classMembers.txt | 6 +++--- .../whenWithHeiarchy/expected.txt | 12 ++++++------ .../fir/low/level/api/AbstractFirLazyResolveTest.kt | 5 +++-- idea/testData/fir/lazyResolve/elvis/main.txt | 6 +++--- idea/testData/fir/lazyResolve/import/foo/main.txt | 4 ++-- idea/testData/fir/lazyResolve/inInit/main.txt | 4 ++-- idea/testData/fir/lazyResolve/inLocal/main.txt | 8 ++++---- idea/testData/fir/lazyResolve/inSecondary/main.txt | 4 ++-- idea/testData/fir/lazyResolve/secondary/main.txt | 4 ++-- idea/testData/fir/lazyResolve/simple/callMe.txt | 6 ++---- idea/testData/fir/lazyResolve/simple/main.txt | 8 ++++---- .../testData/fir/lazyResolve/simpleProperty/main.txt | 2 +- .../fir/lazyResolve/simpleProperty/myProperty.txt | 2 +- 13 files changed, 35 insertions(+), 36 deletions(-) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.txt index cb9d229675e..66d679d219d 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.txt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.txt @@ -8,11 +8,11 @@ FILE: classMembers.kt this@R|/A|.R|/A.receive|(this@R|/A|.R|/A.functionWithLazyBody|()) } - public final [STATUS] val x: R|kotlin/Int| = LAZY_EXPRESSION + public final [CONTRACTS] val x: R|kotlin/Int| = LAZY_EXPRESSION public get(): R|kotlin/Int| { LAZY_BLOCK } - public final [STATUS] fun receive(value: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public final [CONTRACTS] fun receive(value: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } - public final [STATUS] fun functionWithLazyBody(): R|kotlin/String| { LAZY_BLOCK } + public final [CONTRACTS] fun functionWithLazyBody(): R|kotlin/String| { LAZY_BLOCK } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/whenWithHeiarchy/expected.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/whenWithHeiarchy/expected.txt index 048c70e24e4..bfe62cb2db1 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/whenWithHeiarchy/expected.txt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/whenWithHeiarchy/expected.txt @@ -1,11 +1,11 @@ FILE: main.kt - public final fun R|Y|.test(): R|kotlin/String?| { - lval a: R|kotlin/Int| = when (this@R|/test|) { - ($subj$ is R|F|) -> { - Int(1) + public? final? fun Y.test(): String? { + lval a: = when (this#) { + ($subj$ is F) -> { + IntegerLiteral(1) } - ($subj$ is R|G|) -> { - Int(2) + ($subj$ is G) -> { + IntegerLiteral(2) } else -> { ^test Null(null) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyResolveTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyResolveTest.kt index 9eb757d2a94..008c84e0f30 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyResolveTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyResolveTest.kt @@ -13,6 +13,7 @@ import com.intellij.psi.PsiDocumentManager import com.intellij.psi.search.FileTypeIndex import com.intellij.testFramework.LightProjectDescriptor import junit.framework.TestCase +import org.jetbrains.kotlin.fir.FirRenderer import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvedImport import org.jetbrains.kotlin.fir.render @@ -82,7 +83,7 @@ abstract class AbstractFirLazyResolveTest : KotlinLightCodeInsightFixtureTestCas append(name) } } - else -> firElement.render() + else -> firElement.render(FirRenderer.RenderMode.WithResolvePhases) } KotlinTestUtils.assertEqualsToFile(File(testFile.parent, "results.txt"), resultsDump) @@ -106,7 +107,7 @@ abstract class AbstractFirLazyResolveTest : KotlinLightCodeInsightFixtureTestCas val session = resolveState.rootModuleSession val firProvider = session.firIdeProvider val firFile = firProvider.cache.getCachedFirFile(psiFile) ?: continue - KotlinTestUtils.assertEqualsToFile(File(expectedTxtPath(file)), firFile.render()) + KotlinTestUtils.assertEqualsToFile(File(expectedTxtPath(file)), firFile.render(FirRenderer.RenderMode.WithResolvePhases)) } } } \ No newline at end of file diff --git a/idea/testData/fir/lazyResolve/elvis/main.txt b/idea/testData/fir/lazyResolve/elvis/main.txt index 416b24304ca..a044e0f0df3 100644 --- a/idea/testData/fir/lazyResolve/elvis/main.txt +++ b/idea/testData/fir/lazyResolve/elvis/main.txt @@ -1,13 +1,13 @@ FILE: main.kt - public final class WithElvis : R|kotlin/Any| { + public final [BODY_RESOLVE] class WithElvis : R|kotlin/Any| { public constructor(value: R|kotlin/String?|): R|elvis/WithElvis| { super() } - public final val value: R|kotlin/String?| = R|/value| + public final [CONTRACTS] val value: R|kotlin/String?| = R|/value| public get(): R|kotlin/String?| - public final fun foo(): R|kotlin/String| { + public final [BODY_RESOLVE] fun foo(): R|kotlin/String| { ^foo this@R|elvis/WithElvis|.R|elvis/WithElvis.value| ?: String() } diff --git a/idea/testData/fir/lazyResolve/import/foo/main.txt b/idea/testData/fir/lazyResolve/import/foo/main.txt index e6023a9305a..74b0e15ee36 100644 --- a/idea/testData/fir/lazyResolve/import/foo/main.txt +++ b/idea/testData/fir/lazyResolve/import/foo/main.txt @@ -1,4 +1,4 @@ FILE: main.kt - public final fun foofoo(): R|kotlin/Int| { - ^foofoo R|bar/barbar|() + public? final? [RAW_FIR] fun foofoo(): Int { + ^foofoo barbar#() } diff --git a/idea/testData/fir/lazyResolve/inInit/main.txt b/idea/testData/fir/lazyResolve/inInit/main.txt index 9f24859368e..f22840a6425 100644 --- a/idea/testData/fir/lazyResolve/inInit/main.txt +++ b/idea/testData/fir/lazyResolve/inInit/main.txt @@ -1,10 +1,10 @@ FILE: main.kt - public final class Foo : R|kotlin/Any| { + public final [BODY_RESOLVE] class Foo : R|kotlin/Any| { public constructor(): R|Foo| { super() } - public final val x: R|kotlin/Int| + public final [BODY_RESOLVE] val x: R|kotlin/Int| public get(): R|kotlin/Int| init { diff --git a/idea/testData/fir/lazyResolve/inLocal/main.txt b/idea/testData/fir/lazyResolve/inLocal/main.txt index 72ef5dd181f..c0d9c125abc 100644 --- a/idea/testData/fir/lazyResolve/inLocal/main.txt +++ b/idea/testData/fir/lazyResolve/inLocal/main.txt @@ -1,12 +1,12 @@ FILE: main.kt - public final fun main(): R|kotlin/Unit| { - local final fun foo(): R|kotlin/Int| { + public final [BODY_RESOLVE] fun main(): R|kotlin/Unit| { + local final [BODY_RESOLVE] fun foo(): R|kotlin/Int| { ^foo R|main/bar|() } R|/foo|() } - public final fun bar(): R|kotlin/Int| { - lval x: = IntegerLiteral(4) + public final [STATUS] fun bar(): R|kotlin/Int| { + [RAW_FIR] lval x: = IntegerLiteral(4) ^bar IntegerLiteral(9).times#(x#) } diff --git a/idea/testData/fir/lazyResolve/inSecondary/main.txt b/idea/testData/fir/lazyResolve/inSecondary/main.txt index ee49c877180..1d7a239ddf9 100644 --- a/idea/testData/fir/lazyResolve/inSecondary/main.txt +++ b/idea/testData/fir/lazyResolve/inSecondary/main.txt @@ -1,6 +1,6 @@ FILE: main.kt - public final class Foo : R|kotlin/Any| { - public final val x: R|kotlin/Int| + public final [BODY_RESOLVE] class Foo : R|kotlin/Any| { + public final [CONTRACTS] val x: R|kotlin/Int| public get(): R|kotlin/Int| public constructor(): R|Foo| { diff --git a/idea/testData/fir/lazyResolve/secondary/main.txt b/idea/testData/fir/lazyResolve/secondary/main.txt index c00885ba768..1b8de2ec511 100644 --- a/idea/testData/fir/lazyResolve/secondary/main.txt +++ b/idea/testData/fir/lazyResolve/secondary/main.txt @@ -1,10 +1,10 @@ FILE: main.kt - public final class My : R|kotlin/Any| { + public final [STATUS] class My : R|kotlin/Any| { public constructor(): R|My| { super() } } - public final fun foo(): R|My| { + public final [BODY_RESOLVE] fun foo(): R|My| { ^foo R|/My.My|() } diff --git a/idea/testData/fir/lazyResolve/simple/callMe.txt b/idea/testData/fir/lazyResolve/simple/callMe.txt index 68daec3288b..a10ead431de 100644 --- a/idea/testData/fir/lazyResolve/simple/callMe.txt +++ b/idea/testData/fir/lazyResolve/simple/callMe.txt @@ -1,7 +1,5 @@ FILE: callMe.kt - public final fun callMe(): R|kotlin/Int| { + public final [IMPLICIT_TYPES_BODY_RESOLVE] fun callMe(): R|kotlin/Int| { ^callMe Int(42) } - public final fun other(): R|kotlin/Unit| { - lval x: = IntegerLiteral(1) - } + public final [STATUS] fun other(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/idea/testData/fir/lazyResolve/simple/main.txt b/idea/testData/fir/lazyResolve/simple/main.txt index bb71e2d4252..14a8ed78cd3 100644 --- a/idea/testData/fir/lazyResolve/simple/main.txt +++ b/idea/testData/fir/lazyResolve/simple/main.txt @@ -1,12 +1,12 @@ FILE: main.kt - public final fun main(): R|kotlin/Unit| { + public final [BODY_RESOLVE] fun main(): R|kotlin/Unit| { R|/callMe|() R|/foo|() R|/bar|(Int(1), Int(2)) } - public final fun foo(): R|kotlin/Unit| { - lval y: = Double(2.0) + public final [STATUS] fun foo(): R|kotlin/Unit| { + [RAW_FIR] lval y: = Double(2.0) } - public final fun bar(x: R|kotlin/Int|, y: R|kotlin/Int|): R|kotlin/Int| { + public final [IMPLICIT_TYPES_BODY_RESOLVE] fun bar(x: R|kotlin/Int|, y: R|kotlin/Int|): R|kotlin/Int| { ^bar R|/x|.R|kotlin/Int.plus|(R|/y|) } diff --git a/idea/testData/fir/lazyResolve/simpleProperty/main.txt b/idea/testData/fir/lazyResolve/simpleProperty/main.txt index 5c3402b866c..f3915793bb0 100644 --- a/idea/testData/fir/lazyResolve/simpleProperty/main.txt +++ b/idea/testData/fir/lazyResolve/simpleProperty/main.txt @@ -1,4 +1,4 @@ FILE: main.kt - public final fun foo(): R|kotlin/Int| { + public final [BODY_RESOLVE] fun foo(): R|kotlin/Int| { ^foo R|root/myProperty| } diff --git a/idea/testData/fir/lazyResolve/simpleProperty/myProperty.txt b/idea/testData/fir/lazyResolve/simpleProperty/myProperty.txt index 4b84e36b746..93d6a9ae7a4 100644 --- a/idea/testData/fir/lazyResolve/simpleProperty/myProperty.txt +++ b/idea/testData/fir/lazyResolve/simpleProperty/myProperty.txt @@ -1,5 +1,5 @@ FILE: myProperty.kt - public final val myProperty: R|kotlin/Int| + public final [IMPLICIT_TYPES_BODY_RESOLVE] val myProperty: R|kotlin/Int| public get(): R|kotlin/Int| { ^ Int(42) }