From cd063d0cd082b3cbbc9f61d0ced342db722c6877 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sat, 6 Aug 2022 15:30:31 +0200 Subject: [PATCH] [LL FIR] update phase of value parameters on lazy resolve Previously, such phases may not be properly set which could cause additional lazy resolve --- .../fir/transformers/LLFirLazyTransformer.kt | 7 +++++-- .../lazyResolve/annotationParameters.txt | 14 +++++++------- .../testdata/lazyResolve/classMembers.txt | 14 +++++++------- .../testdata/lazyResolve/delegates.txt | 6 +++--- .../lazyResolve/functionWithParameter.txt | 18 +++++++++--------- .../lazyResolve/lambdaAsSAMInterface.txt | 4 ++-- .../lazyResolve/parameterOfNonLocalSetter.txt | 18 +++++++++--------- .../lazyResolve/propertyWithGetter.txt | 2 +- .../propertyWithGetterAndSetter.txt | 4 ++-- .../lazyResolve/secondaryConstructor.txt | 4 ++-- .../testdata/lazyResolve/topLevelFunctions.txt | 2 +- ...ctionsWithExpressionBodyAndExplicitType.txt | 2 +- .../topLevelFunctionsWithImplicitType.txt | 2 +- .../lazyResolve/typeParameterOfTopSetter.txt | 18 +++++++++--------- 14 files changed, 59 insertions(+), 56 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyTransformer.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyTransformer.kt index 2bbb85d8ab2..3f1337fc478 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyTransformer.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirLazyTransformer.kt @@ -39,9 +39,12 @@ internal interface LLFirLazyTransformer { element.replaceResolvePhase(newPhase) when (element) { + is FirFunction -> { + element.valueParameters.forEach { updatePhaseForNonLocals(it, newPhase) } + } is FirProperty -> { - element.getter?.run { if (resolvePhase < newPhase) replaceResolvePhase(newPhase) } - element.setter?.run { if (resolvePhase < newPhase) replaceResolvePhase(newPhase) } + element.getter?.let { updatePhaseForNonLocals(it, newPhase) } + element.setter?.let { updatePhaseForNonLocals(it, newPhase) } } is FirClass -> { element.declarations.forEach { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/annotationParameters.txt b/analysis/low-level-api-fir/testdata/lazyResolve/annotationParameters.txt index 6e45500f6fe..8190a98b159 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/annotationParameters.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/annotationParameters.txt @@ -190,7 +190,7 @@ FILE: annotationParameters.kt } public? final? [COMPILER_REQUIRED_ANNOTATIONS] annotation class Anno : R|kotlin/Annotation| { - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([COMPILER_REQUIRED_ANNOTATIONS] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { super() } @@ -225,7 +225,7 @@ FILE: annotationParameters.kt } public? final? [COMPILER_REQUIRED_ANNOTATIONS] annotation class Anno : R|kotlin/Annotation| { - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([COMPILER_REQUIRED_ANNOTATIONS] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { super() } @@ -260,7 +260,7 @@ FILE: annotationParameters.kt } public? final? [COMPILER_REQUIRED_ANNOTATIONS] annotation class Anno : R|kotlin/Annotation| { - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([COMPILER_REQUIRED_ANNOTATIONS] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { super() } @@ -295,7 +295,7 @@ FILE: annotationParameters.kt } public? final? [COMPILER_REQUIRED_ANNOTATIONS] annotation class Anno : R|kotlin/Annotation| { - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([COMPILER_REQUIRED_ANNOTATIONS] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { super() } @@ -331,7 +331,7 @@ FILE: annotationParameters.kt } public? final? [COMPILER_REQUIRED_ANNOTATIONS] annotation class Anno : R|kotlin/Annotation| { - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([COMPILER_REQUIRED_ANNOTATIONS] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { super() } @@ -367,7 +367,7 @@ FILE: annotationParameters.kt } public? final? [COMPILER_REQUIRED_ANNOTATIONS] annotation class Anno : R|kotlin/Annotation| { - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=Anno] constructor([COMPILER_REQUIRED_ANNOTATIONS] [CorrespondingProperty=/Anno.args] args: A.X): R|Anno| { super() } @@ -403,7 +403,7 @@ FILE: annotationParameters.kt } public final [SUPER_TYPES] annotation class Anno : R|kotlin/Annotation| { - public [STATUS] [ContainingClassKey=Anno] constructor([RAW_FIR] [CorrespondingProperty=/Anno.args] args: ): R|Anno| { + public [STATUS] [ContainingClassKey=Anno] constructor([STATUS] [CorrespondingProperty=/Anno.args] args: ): R|Anno| { super() } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classMembers.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classMembers.txt index b754d25b99d..3c9a8c3b5fb 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/classMembers.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classMembers.txt @@ -101,7 +101,7 @@ FILE: classMembers.kt public? final? [SUPER_TYPES] val x: Int = LAZY_EXPRESSION public? [SUPER_TYPES] [ContainingClassKey=A] get(): Int { LAZY_BLOCK } - public? final? [SUPER_TYPES] fun receive([RAW_FIR] value: String): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [SUPER_TYPES] fun receive([SUPER_TYPES] value: String): R|kotlin/Unit| { LAZY_BLOCK } public? final? [SUPER_TYPES] fun functionWithLazyBody(): String { LAZY_BLOCK } @@ -119,7 +119,7 @@ FILE: classMembers.kt public? final? [SUPER_TYPES] val x: Int = LAZY_EXPRESSION public? [SUPER_TYPES] [ContainingClassKey=A] get(): Int { LAZY_BLOCK } - public? final? [SUPER_TYPES] fun receive([RAW_FIR] value: String): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [SUPER_TYPES] fun receive([SUPER_TYPES] value: String): R|kotlin/Unit| { LAZY_BLOCK } public? final? [SUPER_TYPES] fun functionWithLazyBody(): String { LAZY_BLOCK } @@ -137,7 +137,7 @@ FILE: classMembers.kt public? final? [SUPER_TYPES] val x: Int = LAZY_EXPRESSION public? [SUPER_TYPES] [ContainingClassKey=A] get(): Int { LAZY_BLOCK } - public? final? [SUPER_TYPES] fun receive([RAW_FIR] value: String): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [SUPER_TYPES] fun receive([SUPER_TYPES] value: String): R|kotlin/Unit| { LAZY_BLOCK } public? final? [SUPER_TYPES] fun functionWithLazyBody(): String { LAZY_BLOCK } @@ -157,7 +157,7 @@ FILE: classMembers.kt public? final? [SUPER_TYPES] val x: Int = LAZY_EXPRESSION public? [SUPER_TYPES] [ContainingClassKey=A] get(): Int { LAZY_BLOCK } - public? final? [SUPER_TYPES] fun receive([RAW_FIR] value: String): R|kotlin/Unit| { LAZY_BLOCK } + public? final? [SUPER_TYPES] fun receive([SUPER_TYPES] value: String): R|kotlin/Unit| { LAZY_BLOCK } public? final? [SUPER_TYPES] fun functionWithLazyBody(): String { LAZY_BLOCK } @@ -177,7 +177,7 @@ FILE: classMembers.kt public final [STATUS] val x: R|kotlin/Int| = LAZY_EXPRESSION public [STATUS] [ContainingClassKey=A] get(): R|kotlin/Int| { LAZY_BLOCK } - public final [STATUS] fun receive([RAW_FIR] value: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public final [STATUS] fun receive([STATUS] value: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } public final [STATUS] fun functionWithLazyBody(): R|kotlin/String| { LAZY_BLOCK } @@ -197,7 +197,7 @@ FILE: classMembers.kt public final [STATUS] val x: R|kotlin/Int| = LAZY_EXPRESSION public [STATUS] [ContainingClassKey=A] get(): R|kotlin/Int| { LAZY_BLOCK } - public final [STATUS] fun receive([RAW_FIR] value: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + public final [STATUS] fun receive([STATUS] value: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } public final [STATUS] fun functionWithLazyBody(): R|kotlin/String| { LAZY_BLOCK } @@ -217,7 +217,7 @@ FILE: classMembers.kt public final [STATUS] val x: R|kotlin/Int| = LAZY_EXPRESSION public [STATUS] [ContainingClassKey=A] get(): R|kotlin/Int| { LAZY_BLOCK } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/String|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/String|): R|kotlin/Unit| { } public final [CONTRACTS] fun functionWithLazyBody(): R|kotlin/String| { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/delegates.txt b/analysis/low-level-api-fir/testdata/lazyResolve/delegates.txt index 760e11ff403..ac372642e4d 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/delegates.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/delegates.txt @@ -341,7 +341,7 @@ FILE: delegates.kt R|/variableWithExplicitType| = Int(10) R|/variableWithImplicitType| = Int(10) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/Int|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/Int|): R|kotlin/Unit| { } public final [CONTRACTS] val delegate: R|kotlin/properties/ReadWriteProperty| = object : R|kotlin/properties/ReadWriteProperty| { private [RAW_FIR] [ContainingClassKey=] constructor(): R|| { @@ -370,14 +370,14 @@ FILE: delegates.kt public [CONTRACTS] get(): { ^ D|/variableWithExplicitType|.getValue#(Null(null), ::R|/variableWithExplicitType|) } - public [CONTRACTS] set([RAW_FIR] : ): R|kotlin/Unit| { + public [CONTRACTS] set([CONTRACTS] : ): R|kotlin/Unit| { D|/variableWithExplicitType|.setValue#(Null(null), ::R|/variableWithExplicitType|, R|/variableWithExplicitType|) } public final [IMPLICIT_TYPES_BODY_RESOLVE] var variableWithImplicitType: R|kotlin/Int|by R|/delegate| public [IMPLICIT_TYPES_BODY_RESOLVE] get(): R|kotlin/Int| { ^ D|/variableWithImplicitType|.R|SubstitutionOverride|(Null(null), ::R|/variableWithImplicitType|) } - public [IMPLICIT_TYPES_BODY_RESOLVE] set([RAW_FIR] : R|kotlin/Int|): R|kotlin/Unit| { + public [IMPLICIT_TYPES_BODY_RESOLVE] set([IMPLICIT_TYPES_BODY_RESOLVE] : R|kotlin/Int|): R|kotlin/Unit| { D|/variableWithImplicitType|.R|SubstitutionOverride|(Null(null), ::R|/variableWithImplicitType|, R|/variableWithImplicitType|) } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functionWithParameter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functionWithParameter.txt index cb3dbc573f3..245bce36ccf 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/functionWithParameter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functionWithParameter.txt @@ -15,43 +15,43 @@ COMPILER_REQUIRED_ANNOTATIONS: FILE: functionWithParameter.kt public? final? [RAW_FIR] interface I : R|kotlin/Any| { } - public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun resolveMe([RAW_FIR] param: I): { LAZY_BLOCK } + public? final? [COMPILER_REQUIRED_ANNOTATIONS] fun resolveMe([COMPILER_REQUIRED_ANNOTATIONS] param: I): { LAZY_BLOCK } COMPANION_GENERATION: FILE: functionWithParameter.kt public? final? [RAW_FIR] interface I : R|kotlin/Any| { } - public? final? [COMPANION_GENERATION] fun resolveMe([RAW_FIR] param: I): { LAZY_BLOCK } + public? final? [COMPANION_GENERATION] fun resolveMe([COMPANION_GENERATION] param: I): { LAZY_BLOCK } SUPER_TYPES: FILE: functionWithParameter.kt public? final? [RAW_FIR] interface I : R|kotlin/Any| { } - public? final? [SUPER_TYPES] fun resolveMe([RAW_FIR] param: I): { LAZY_BLOCK } + public? final? [SUPER_TYPES] fun resolveMe([SUPER_TYPES] param: I): { LAZY_BLOCK } TYPES: FILE: functionWithParameter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] interface I : R|kotlin/Any| { } - public? final? [TYPES] fun resolveMe([RAW_FIR] param: R|I|): { LAZY_BLOCK } + public? final? [TYPES] fun resolveMe([TYPES] param: R|I|): { LAZY_BLOCK } STATUS: FILE: functionWithParameter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] interface I : R|kotlin/Any| { } - public final [STATUS] fun resolveMe([RAW_FIR] param: R|I|): { LAZY_BLOCK } + public final [STATUS] fun resolveMe([STATUS] param: R|I|): { LAZY_BLOCK } ARGUMENTS_OF_ANNOTATIONS: FILE: functionWithParameter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] interface I : R|kotlin/Any| { } - public final [ARGUMENTS_OF_ANNOTATIONS] fun resolveMe([RAW_FIR] param: R|I|): { LAZY_BLOCK } + public final [ARGUMENTS_OF_ANNOTATIONS] fun resolveMe([ARGUMENTS_OF_ANNOTATIONS] param: R|I|): { LAZY_BLOCK } CONTRACTS: FILE: functionWithParameter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] interface I : R|kotlin/Any| { } - public final [CONTRACTS] fun resolveMe([RAW_FIR] param: R|I|): { + public final [CONTRACTS] fun resolveMe([CONTRACTS] param: R|I|): { ^resolveMe Unit# } @@ -59,7 +59,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: functionWithParameter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] interface I : R|kotlin/Any| { } - public final [IMPLICIT_TYPES_BODY_RESOLVE] fun resolveMe([RAW_FIR] param: R|I|): R|kotlin/Unit| { + public final [IMPLICIT_TYPES_BODY_RESOLVE] fun resolveMe([IMPLICIT_TYPES_BODY_RESOLVE] param: R|I|): R|kotlin/Unit| { ^resolveMe Q|kotlin/Unit| } @@ -67,7 +67,7 @@ EXPECT_ACTUAL_MATCHING: FILE: functionWithParameter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] interface I : R|kotlin/Any| { } - public final [EXPECT_ACTUAL_MATCHING] fun resolveMe([RAW_FIR] param: R|I|): R|kotlin/Unit| { + public final [EXPECT_ACTUAL_MATCHING] fun resolveMe([EXPECT_ACTUAL_MATCHING] param: R|I|): R|kotlin/Unit| { ^resolveMe Q|kotlin/Unit| } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/lambdaAsSAMInterface.txt b/analysis/low-level-api-fir/testdata/lazyResolve/lambdaAsSAMInterface.txt index 358e0dc83d9..b9e92e54d4f 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/lambdaAsSAMInterface.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/lambdaAsSAMInterface.txt @@ -188,10 +188,10 @@ FILE: lambdaAsSAMInterface.kt } public abstract fun [SUPER_TYPES] interface Foo : R|kotlin/Any| { - public abstract [STATUS] fun foo([RAW_FIR] a: R|foo/Arg|): R|foo/Arg| + public abstract [STATUS] fun foo([STATUS] a: R|foo/Arg|): R|foo/Arg| } - public final [CONTRACTS] fun testMe([RAW_FIR] f: R|foo/Foo|): R|kotlin/Unit| { + public final [CONTRACTS] fun testMe([CONTRACTS] f: R|foo/Foo|): R|kotlin/Unit| { } public final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { R|foo/testMe|( = [BODY_RESOLVE] [MatchingParameterFunctionTypeKey=foo/Foo] testMe@fun ([BODY_RESOLVE] b: R|foo/Arg|): R|foo/Arg| { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt index 8724751ece2..e1a3d74a943 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfNonLocalSetter.txt @@ -34,7 +34,7 @@ FILE: parameterOfNonLocalSetter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] var x: Int = LAZY_EXPRESSION public? [TYPES] [ContainingClassKey=X] get(): Int - public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=X] set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? [COMPILER_REQUIRED_ANNOTATIONS] [ContainingClassKey=X] set([COMPILER_REQUIRED_ANNOTATIONS] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } @@ -47,7 +47,7 @@ FILE: parameterOfNonLocalSetter.kt public? final? [COMPANION_GENERATION] var x: Int = LAZY_EXPRESSION public? [TYPES] [ContainingClassKey=X] get(): Int - public? [COMPANION_GENERATION] [ContainingClassKey=X] set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? [COMPANION_GENERATION] [ContainingClassKey=X] set([COMPANION_GENERATION] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } @@ -60,7 +60,7 @@ FILE: parameterOfNonLocalSetter.kt public? final? [SUPER_TYPES] var x: Int = LAZY_EXPRESSION public? [TYPES] [ContainingClassKey=X] get(): Int - public? [SUPER_TYPES] [ContainingClassKey=X] set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? [SUPER_TYPES] [ContainingClassKey=X] set([SUPER_TYPES] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } } @@ -73,7 +73,7 @@ FILE: parameterOfNonLocalSetter.kt public? final? [TYPES] var x: R|kotlin/Int| = LAZY_EXPRESSION public? [TYPES] [ContainingClassKey=X] get(): R|kotlin/Int| - public? [TYPES] [ContainingClassKey=X] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } + public? [TYPES] [ContainingClassKey=X] set([TYPES] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -86,7 +86,7 @@ FILE: parameterOfNonLocalSetter.kt public final [STATUS] var x: R|kotlin/Int| = LAZY_EXPRESSION public [BODY_RESOLVE] [ContainingClassKey=X] get(): R|kotlin/Int| - public [STATUS] [ContainingClassKey=X] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } + public [STATUS] [ContainingClassKey=X] set([STATUS] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -99,7 +99,7 @@ FILE: parameterOfNonLocalSetter.kt public final [ARGUMENTS_OF_ANNOTATIONS] var x: R|kotlin/Int| = LAZY_EXPRESSION public [BODY_RESOLVE] [ContainingClassKey=X] get(): R|kotlin/Int| - public [ARGUMENTS_OF_ANNOTATIONS] [ContainingClassKey=X] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } + public [ARGUMENTS_OF_ANNOTATIONS] [ContainingClassKey=X] set([ARGUMENTS_OF_ANNOTATIONS] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } } @@ -112,7 +112,7 @@ FILE: parameterOfNonLocalSetter.kt public final [CONTRACTS] var x: R|kotlin/Int| = IntegerLiteral(2) public [BODY_RESOLVE] [ContainingClassKey=X] get(): R|kotlin/Int| - public [CONTRACTS] [ContainingClassKey=X] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + public [CONTRACTS] [ContainingClassKey=X] set([CONTRACTS] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { ^ Unit# } @@ -127,7 +127,7 @@ FILE: parameterOfNonLocalSetter.kt public final [IMPLICIT_TYPES_BODY_RESOLVE] var x: R|kotlin/Int| = IntegerLiteral(2) public [BODY_RESOLVE] [ContainingClassKey=X] get(): R|kotlin/Int| - public [IMPLICIT_TYPES_BODY_RESOLVE] [ContainingClassKey=X] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + public [IMPLICIT_TYPES_BODY_RESOLVE] [ContainingClassKey=X] set([IMPLICIT_TYPES_BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { ^ Unit# } @@ -142,7 +142,7 @@ FILE: parameterOfNonLocalSetter.kt public final [EXPECT_ACTUAL_MATCHING] var x: R|kotlin/Int| = IntegerLiteral(2) public [BODY_RESOLVE] [ContainingClassKey=X] get(): R|kotlin/Int| - public [EXPECT_ACTUAL_MATCHING] [ContainingClassKey=X] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + public [EXPECT_ACTUAL_MATCHING] [ContainingClassKey=X] set([EXPECT_ACTUAL_MATCHING] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { ^ Unit# } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetter.txt index fcabce658ef..c1422096075 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetter.txt @@ -87,7 +87,7 @@ FILE: propertyWithGetter.kt public final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { R|/receive|(R|/withGetter|) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/Int|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/Int|): R|kotlin/Unit| { } public final [CONTRACTS] val withGetter: R|kotlin/Int| public [CONTRACTS] get(): R|kotlin/Int| { diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetterAndSetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetterAndSetter.txt index f1374281c69..661f49323fa 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetterAndSetter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/propertyWithGetterAndSetter.txt @@ -102,13 +102,13 @@ FILE: propertyWithGetterAndSetter.kt R|/receive|(R|/withGetterAndSetter|) R|/withGetterAndSetter| = Int(123) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/Int|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/Int|): R|kotlin/Unit| { } public final [CONTRACTS] var withGetterAndSetter: R|kotlin/Int| = IntegerLiteral(42) public [CONTRACTS] get(): R|kotlin/Int| { ^ field# } - public [CONTRACTS] set([RAW_FIR] value: R|kotlin/Int|): R|kotlin/Unit| { + public [CONTRACTS] set([CONTRACTS] value: R|kotlin/Int|): R|kotlin/Unit| { field# = value# } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructor.txt b/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructor.txt index df3f97efb3a..28e1f7db40f 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructor.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/secondaryConstructor.txt @@ -142,10 +142,10 @@ FILE: secondaryConstructor.kt public final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { R|/receive|(R|/A.A|(Int(42))) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|A|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|A|): R|kotlin/Unit| { } public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor([RAW_FIR] x: R|kotlin/Int|): R|A| { + public [STATUS] [ContainingClassKey=A] constructor([STATUS] x: R|kotlin/Int|): R|A| { super() [RAW_FIR] lval a: = x# } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctions.txt b/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctions.txt index cfb66981ab2..13ccce70e25 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctions.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctions.txt @@ -76,7 +76,7 @@ FILE: topLevelFunctions.kt public final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { R|/receive|(R|/functionWithLazyBody|()) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/String|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/String|): R|kotlin/Unit| { } public final [CONTRACTS] fun functionWithLazyBody(): R|kotlin/String| { ^functionWithLazyBody String(42) diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.txt b/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.txt index 31129806485..904fa578f5d 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.txt @@ -76,7 +76,7 @@ FILE: topLevelFunctionsWithExpressionBodyAndExplicitType.kt public final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { R|/receive|(R|/functionWithLazyBody|()) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/String|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/String|): R|kotlin/Unit| { } public final [CONTRACTS] fun functionWithLazyBody(): R|kotlin/String| { ^functionWithLazyBody String(42) diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithImplicitType.txt b/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithImplicitType.txt index c6e434e5745..0aea6704bb6 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithImplicitType.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithImplicitType.txt @@ -76,7 +76,7 @@ FILE: topLevelFunctionsWithImplicitType.kt public final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { R|/receive|(R|/functionWithLazyBody|()) } - public final [CONTRACTS] fun receive([RAW_FIR] value: R|kotlin/String|): R|kotlin/Unit| { + public final [CONTRACTS] fun receive([CONTRACTS] value: R|kotlin/String|): R|kotlin/Unit| { } public final [IMPLICIT_TYPES_BODY_RESOLVE] fun functionWithLazyBody(): R|kotlin/String| { ^functionWithLazyBody String(42) diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt index 49924efb063..4edff4308e5 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfTopSetter.txt @@ -15,43 +15,43 @@ COMPILER_REQUIRED_ANNOTATIONS: FILE: typeParameterOfTopSetter.kt public? final? [COMPILER_REQUIRED_ANNOTATIONS] var x: Int = LAZY_EXPRESSION public? [TYPES] get(): Int - public? [COMPILER_REQUIRED_ANNOTATIONS] set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? [COMPILER_REQUIRED_ANNOTATIONS] set([COMPILER_REQUIRED_ANNOTATIONS] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } COMPANION_GENERATION: FILE: typeParameterOfTopSetter.kt public? final? [COMPANION_GENERATION] var x: Int = LAZY_EXPRESSION public? [TYPES] get(): Int - public? [COMPANION_GENERATION] set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? [COMPANION_GENERATION] set([COMPANION_GENERATION] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } SUPER_TYPES: FILE: typeParameterOfTopSetter.kt public? final? [SUPER_TYPES] var x: Int = LAZY_EXPRESSION public? [TYPES] get(): Int - public? [SUPER_TYPES] set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? [SUPER_TYPES] set([SUPER_TYPES] resolveMe: Int): R|kotlin/Unit| { LAZY_BLOCK } TYPES: FILE: typeParameterOfTopSetter.kt public? final? [TYPES] var x: R|kotlin/Int| = LAZY_EXPRESSION public? [TYPES] get(): R|kotlin/Int| - public? [TYPES] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } + public? [TYPES] set([TYPES] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } STATUS: FILE: typeParameterOfTopSetter.kt public final [STATUS] var x: R|kotlin/Int| = LAZY_EXPRESSION public [BODY_RESOLVE] get(): R|kotlin/Int| - public [STATUS] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } + public [STATUS] set([STATUS] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } ARGUMENTS_OF_ANNOTATIONS: FILE: typeParameterOfTopSetter.kt public final [ARGUMENTS_OF_ANNOTATIONS] var x: R|kotlin/Int| = LAZY_EXPRESSION public [BODY_RESOLVE] get(): R|kotlin/Int| - public [ARGUMENTS_OF_ANNOTATIONS] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } + public [ARGUMENTS_OF_ANNOTATIONS] set([ARGUMENTS_OF_ANNOTATIONS] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { LAZY_BLOCK } CONTRACTS: FILE: typeParameterOfTopSetter.kt public final [CONTRACTS] var x: R|kotlin/Int| = IntegerLiteral(2) public [BODY_RESOLVE] get(): R|kotlin/Int| - public [CONTRACTS] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + public [CONTRACTS] set([CONTRACTS] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { ^ Unit# } @@ -59,7 +59,7 @@ IMPLICIT_TYPES_BODY_RESOLVE: FILE: typeParameterOfTopSetter.kt public final [IMPLICIT_TYPES_BODY_RESOLVE] var x: R|kotlin/Int| = IntegerLiteral(2) public [BODY_RESOLVE] get(): R|kotlin/Int| - public [IMPLICIT_TYPES_BODY_RESOLVE] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + public [IMPLICIT_TYPES_BODY_RESOLVE] set([IMPLICIT_TYPES_BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { ^ Unit# } @@ -67,7 +67,7 @@ EXPECT_ACTUAL_MATCHING: FILE: typeParameterOfTopSetter.kt public final [EXPECT_ACTUAL_MATCHING] var x: R|kotlin/Int| = IntegerLiteral(2) public [BODY_RESOLVE] get(): R|kotlin/Int| - public [EXPECT_ACTUAL_MATCHING] set([RAW_FIR] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { + public [EXPECT_ACTUAL_MATCHING] set([EXPECT_ACTUAL_MATCHING] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { ^ Unit# }