From b531e535b63e06bdb3c8597d6f9f44e48f0c843c Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 27 Aug 2019 17:43:32 +0300 Subject: [PATCH] FIR call resolve: set values of dispatch & extension receivers --- .../src/org/jetbrains/kotlin/fir/CopyUtils.kt | 4 ++ .../jetbrains/kotlin/fir/FirCallResolver.kt | 17 ++++-- .../kotlin/fir/resolve/calls/Candidate.kt | 22 ++++++++ ...rCallCompletionResultsWriterTransformer.kt | 5 +- .../resolve/transformers/TransformUtils.kt | 17 ++++-- .../fir/resolve/testData/resolve/copy.txt | 8 +-- .../testData/resolve/expresssions/access.txt | 12 ++--- .../resolve/expresssions/companion.txt | 10 ++-- .../expresssions/companionExtension.txt | 2 +- .../resolve/expresssions/constructor.txt | 2 +- .../resolve/expresssions/dispatchReceiver.txt | 2 +- .../resolve/expresssions/importedReceiver.txt | 10 ++-- .../expresssions/invoke/explicitReceiver.txt | 4 +- .../expresssions/invoke/explicitReceiver2.txt | 2 +- .../resolve/expresssions/invoke/extension.txt | 2 +- .../expresssions/invoke/implicitTypeOrder.txt | 2 +- .../invoke/propertyFromParameter.txt | 2 +- .../resolve/expresssions/invoke/simple.txt | 2 +- .../resolve/expresssions/localExtension.txt | 2 +- .../resolve/expresssions/memberExtension.txt | 4 +- .../testData/resolve/expresssions/objects.txt | 2 +- .../resolve/expresssions/outerObject.txt | 2 +- .../expresssions/qualifiedExpressions.txt | 8 +-- .../expresssions/receiverConsistency.txt | 2 +- .../resolve/expresssions/sameReceiver.txt | 2 +- .../resolve/testData/resolve/extension.txt | 4 +- compiler/fir/resolve/testData/resolve/fib.txt | 8 +-- .../testData/resolve/fromBuilder/enums.txt | 2 +- .../fromBuilder/noPrimaryConstructor.txt | 2 +- .../resolve/fromBuilder/simpleClass.txt | 2 +- .../testData/resolve/functionTypes.txt | 2 +- .../resolve/testData/resolve/localObject.txt | 10 ++-- .../resolve/testData/resolve/nested/inner.txt | 22 ++++---- .../testData/resolve/nested/simple.txt | 14 ++--- .../testData/resolve/overrides/generics.txt | 2 +- .../testData/resolve/overrides/simple.txt | 4 +- .../resolve/overrides/simpleFakeOverride.txt | 2 +- .../testData/resolve/overrides/three.txt | 10 ++-- .../resolve/references/superMember.txt | 2 +- .../resolve/testData/resolve/simpleClass.txt | 2 +- .../resolve/stdlib/arrayFirstOrNull.txt | 6 +-- .../testData/resolve/stdlib/backingField.txt | 2 +- .../testData/resolve/stdlib/companionLoad.txt | 2 +- .../testData/resolve/stdlib/components.txt | 22 ++++---- .../stdlib/factoryFunctionOverloads.txt | 2 +- .../testData/resolve/stdlib/hashSet.txt | 4 +- .../resolve/stdlib/implicitReceiverOrder.txt | 8 +-- .../testData/resolve/stdlib/mapList.txt | 10 ++-- .../stdlib/multipleImplicitReceivers.txt | 4 +- .../testData/resolve/stdlib/recursiveBug.txt | 10 ++-- .../resolve/stdlib/reflectionClass.txt | 2 +- .../resolve/stdlib/simpleDelegateProvider.txt | 8 +-- .../testData/resolve/stdlib/simpleLazy.txt | 6 +-- .../resolve/stdlib/topLevelResolve.txt | 52 +++++++++---------- .../stdlib/typeAliasDeserialization.txt | 2 +- .../resolve/stdlib/unaryOperators.txt | 10 ++-- .../resolve/typeAliasWithTypeArguments.txt | 52 +++++++++---------- .../fir/expressions/FirQualifiedAccess.kt | 4 ++ .../expressions/impl/FirComponentCallImpl.kt | 8 +++ .../impl/FirDelegatedConstructorCallImpl.kt | 8 +++ .../impl/FirModifiableQualifiedAccess.kt | 18 +++++++ .../references/FirImplicitThisReference.kt | 15 ++++++ .../fir/lazyResolve/elvis/results.txt | 2 +- .../fir/lazyResolve/inInit/results.txt | 2 +- .../fir/lazyResolve/inSecondary/results.txt | 2 +- idea/testData/fir/lazyResolve/simple/main.txt | 2 +- .../basic/m2_java_dep(m1-java)/user.txt | 2 +- .../basicWithAnnotatedJava/jvm/jvm.txt | 4 +- .../jvm/jvm.txt | 4 +- .../jvm/simpleFakeOverride.txt | 2 +- .../basicWithPrimitiveJava/jvm/jvm.txt | 6 +-- .../javaGetPrefixConflict/jvm/Test.txt | 4 +- .../javaInheritsKotlinDerived/jvm/Test.txt | 2 +- .../javaInheritsKotlinExtension/jvm/Test.txt | 2 +- .../javaSyntheticProperty/jvm/Test.txt | 2 +- .../mppFakeOverrides/common/common.txt | 2 +- .../multiModule/mppFakeOverrides/jvm/jvm.txt | 6 +-- .../fir/multiModule/mppMemberType/jvm/jvm.txt | 12 ++--- .../fir/multiModule/mppMembers/jvm/jvm.txt | 8 +-- .../fir/multiModule/mppSuperTypes/jvm/jvm.txt | 12 ++--- .../multiModule/overrideWithJava/jvm/B.txt | 8 +-- 81 files changed, 337 insertions(+), 237 deletions(-) create mode 100644 compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/FirImplicitThisReference.kt diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt index 0e09a6fc150..9987d64fdc4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt @@ -26,6 +26,8 @@ fun FirFunctionCall.copy( arguments: List = this.arguments, calleeReference: FirNamedReference = this.calleeReference, explicitReceiver: FirExpression? = this.explicitReceiver, + dispatchReceiver: FirExpression = this.dispatchReceiver, + extensionReceiver: FirExpression = this.extensionReceiver, psi: PsiElement? = this.psi, safe: Boolean = this.safe, typeArguments: List = this.typeArguments, @@ -36,6 +38,8 @@ fun FirFunctionCall.copy( this.arguments.addAll(arguments) this.calleeReference = calleeReference this.explicitReceiver = explicitReceiver + this.dispatchReceiver = dispatchReceiver + this.extensionReceiver = extensionReceiver this.typeArguments.addAll(typeArguments) this.typeRef = resultType } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 186424f54bf..a63d8ef08f5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -11,11 +11,10 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess import org.jetbrains.kotlin.fir.expressions.FirStatement +import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedQualifierImpl -import org.jetbrains.kotlin.fir.references.FirBackingFieldReferenceImpl -import org.jetbrains.kotlin.fir.references.FirErrorNamedReference -import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl -import org.jetbrains.kotlin.fir.references.FirSimpleNamedReference +import org.jetbrains.kotlin.fir.expressions.impl.FirThisReceiverExpressionImpl +import org.jetbrains.kotlin.fir.references.* import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents import org.jetbrains.kotlin.fir.resolve.calls.* import org.jetbrains.kotlin.fir.resolve.transformers.* @@ -33,6 +32,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinErrorType import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator class FirCallResolver( @@ -125,6 +125,8 @@ class FirCallResolver( val resultFunctionCall = if (candidate != null && candidate.callInfo != info) { functionCall.copy( explicitReceiver = candidate.callInfo.explicitReceiver, + dispatchReceiver = candidate.dispatchReceiverExpression(), + extensionReceiver = candidate.extensionReceiverExpression(), arguments = candidate.callInfo.arguments, safe = candidate.callInfo.isSafeCall ) @@ -200,7 +202,12 @@ class FirCallResolver( } @Suppress("UNCHECKED_CAST") - val resultExpression = qualifiedAccess.transformCalleeReference(StoreNameReference, nameReference) as T + var resultExpression = qualifiedAccess.transformCalleeReference(StoreNameReference, nameReference) as T + if (candidates.size == 1) { + val candidate = candidates.single() + resultExpression = resultExpression.transformDispatchReceiver(StoreReceiver, candidate.dispatchReceiverExpression()) as T + resultExpression = resultExpression.transformExtensionReceiver(StoreReceiver, candidate.extensionReceiverExpression()) as T + } if (resultExpression is FirExpression) transformer.storeTypeFromCallee(resultExpression) return resultExpression } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt index 7c5b671cf16..ff7c793fa09 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt @@ -10,10 +10,14 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression +import org.jetbrains.kotlin.fir.expressions.impl.FirThisReceiverExpressionImpl +import org.jetbrains.kotlin.fir.references.FirImplicitThisReference import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintStorage import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind @@ -61,4 +65,22 @@ class Candidate( var argumentMapping: Map? = null val postponedAtoms = mutableListOf() + + fun dispatchReceiverExpression(): FirExpression = when (explicitReceiverKind) { + ExplicitReceiverKind.DISPATCH_RECEIVER, ExplicitReceiverKind.BOTH_RECEIVERS -> callInfo.explicitReceiver!! + else -> dispatchReceiverValue?.let { + FirThisReceiverExpressionImpl(null, FirImplicitThisReference(it.klassSymbol)).apply { + typeRef = FirResolvedTypeRefImpl(null, it.type) + } + } ?: FirNoReceiverExpression + } + + fun extensionReceiverExpression(): FirExpression = when (explicitReceiverKind) { + ExplicitReceiverKind.EXTENSION_RECEIVER, ExplicitReceiverKind.BOTH_RECEIVERS -> callInfo.explicitReceiver!! + else -> implicitExtensionReceiverValue?.let { + FirThisReceiverExpressionImpl(null, FirImplicitThisReference(it.boundSymbol)).apply { + typeRef = FirResolvedTypeRefImpl(null, it.type) + } + } ?: FirNoReceiverExpression + } } \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt index e4f49a442eb..5ae1f70217d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.copy import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate import org.jetbrains.kotlin.fir.resolve.calls.candidate @@ -118,7 +119,9 @@ class FirCallCompletionResultsWriterTransformer( calleeReference.psi, calleeReference.name, calleeReference.candidateSymbol - ) + ), + dispatchReceiver = subCandidate.dispatchReceiverExpression(), + extensionReceiver = subCandidate.extensionReceiverExpression() ).compose() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt index 39478a1be11..079d0d746a3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt @@ -8,9 +8,9 @@ package org.jetbrains.kotlin.fir.resolve.transformers import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirNamedReference import org.jetbrains.kotlin.fir.FirResolvedCallableReference -import org.jetbrains.kotlin.fir.expressions.FirFunctionCall -import org.jetbrains.kotlin.fir.expressions.FirStatement -import org.jetbrains.kotlin.fir.expressions.FirWrappedArgumentExpression +import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression +import org.jetbrains.kotlin.fir.resolve.calls.Candidate import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult @@ -93,3 +93,14 @@ internal object StoreCalleeReference : FirTransformer() { + override fun transformElement(element: E, data: FirExpression): CompositeTransformResult { + return element.compose() + } + + override fun transformExpression(expression: FirExpression, data: FirExpression): CompositeTransformResult { + if (expression !is FirNoReceiverExpression) return expression.compose() + return data.compose() + } +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/resolve/copy.txt b/compiler/fir/resolve/testData/resolve/copy.txt index 72553bc500d..3c65c14f165 100644 --- a/compiler/fir/resolve/testData/resolve/copy.txt +++ b/compiler/fir/resolve/testData/resolve/copy.txt @@ -23,8 +23,8 @@ FILE: copy.kt } public final fun test(some: R|Some|): R|kotlin/Unit| { - lval other: R|Some| = R|/some|.R|/Some.copy|(y = String(123)) - lval another: R|Some| = R|/some|.R|/Some.copy|(x = Int(123)) - lval same: R|Some| = R|/some|.R|/Some.copy|() - lval different: R|Some| = R|/some|.R|/Some.copy|(Int(456), String(456)) + lval other: R|Some| = D|R|/some||.R|/Some.copy|(y = String(123)) + lval another: R|Some| = D|R|/some||.R|/Some.copy|(x = Int(123)) + lval same: R|Some| = D|R|/some||.R|/Some.copy|() + lval different: R|Some| = D|R|/some||.R|/Some.copy|(Int(456), String(456)) } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/access.txt b/compiler/fir/resolve/testData/resolve/expresssions/access.txt index d65189aa8a5..11142a4bdb2 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/access.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/access.txt @@ -8,11 +8,11 @@ FILE: access.kt public get(): R|kotlin/Int| public final fun abc(): R|kotlin/Int| { - ^abc R|/Foo.x| + ^abc D|this@R|/Foo||.R|/Foo.x| } public final fun cba(): R|kotlin/Int| { - ^cba R|/Foo.abc|() + ^cba D|this@R|/Foo||.R|/Foo.abc|() } } @@ -25,7 +25,7 @@ FILE: access.kt public get(): R|kotlin/String| public final fun R|Foo|.abc(): R|kotlin/Int| { - ^abc R|/Foo.x| + ^abc D|this@R|/Foo||.R|/Foo.x| } public final fun bar(): R|Bar| { @@ -37,16 +37,16 @@ FILE: access.kt } public final fun R|Foo|.check(): { - ^check R|/Foo.abc|().#(R|/Bar.bar|()) + ^check D|this@R|/Foo||.R|/Foo.abc|().#(D|this@R|/Bar||.R|/Bar.bar|()) } public final fun R|Foo|.check2(): R|kotlin/String| { - ^check2 String().R|kotlin/String.plus|(R|/Bar.bar|()) + ^check2 D|String()|.R|kotlin/String.plus|(D|this@R|/Bar||.R|/Bar.bar|()) } } public final fun R|Foo|.ext(): R|kotlin/Int| { - ^ext R|/Foo.x| + ^ext D|this@R|/Foo||.R|/Foo.x| } public final fun bar(): R|kotlin/Unit| { } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/companion.txt b/compiler/fir/resolve/testData/resolve/expresssions/companion.txt index d1e9297592d..29c6bdd1cf4 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/companion.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/companion.txt @@ -42,10 +42,10 @@ FILE: companion.kt } public final fun test(): R|kotlin/Unit| { - Q|A|.R|/A.Companion.foo|() - Q|B|.R|/A.bar|() - Q|B|.R|/B.Companion.baz|() - lval x: R|kotlin/String| = Q|A|.R|/A.Companion.D| - lval y: R|kotlin/String| = Q|B|.R|/B.Companion.C| + D|Q|A||.R|/A.Companion.foo|() + D|Q|B||.R|/A.bar|() + D|Q|B||.R|/B.Companion.baz|() + lval x: R|kotlin/String| = D|Q|A||.R|/A.Companion.D| + lval y: R|kotlin/String| = D|Q|B||.R|/B.Companion.C| lval z: = Q|B|.# } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/companionExtension.txt b/compiler/fir/resolve/testData/resolve/expresssions/companionExtension.txt index 51fe6223fcf..a1f9d055c09 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/companionExtension.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/companionExtension.txt @@ -15,7 +15,7 @@ FILE: companionExtension.kt } public final fun test(): R|kotlin/Unit| { - R|/My.Companion.foo|() + E|this@R|/My||.R|/My.Companion.foo|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/constructor.txt b/compiler/fir/resolve/testData/resolve/expresssions/constructor.txt index f058ed078a9..627d993f1a9 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/constructor.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/constructor.txt @@ -13,5 +13,5 @@ FILE: constructor.kt ^foo R|/C.C|() } public final fun bar(): R|C| { - ^bar R|/foo|().R|/C.create|() + ^bar D|R|/foo|()|.R|/C.create|() } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/dispatchReceiver.txt b/compiler/fir/resolve/testData/resolve/expresssions/dispatchReceiver.txt index 21697bd3ad2..a2d1a85363f 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/dispatchReceiver.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/dispatchReceiver.txt @@ -13,7 +13,7 @@ FILE: dispatchReceiver.kt public set(value: R|Base|): R|kotlin/Unit| public final fun check(): R|kotlin/Unit| { - ^check R|/My.delegate|.R|/Base.check|() + ^check D|D|this@R|/My||.R|/My.delegate||.R|/Base.check|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/importedReceiver.txt b/compiler/fir/resolve/testData/resolve/expresssions/importedReceiver.txt index 4a3ae6aacb7..8bdc5b94c9b 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/importedReceiver.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/importedReceiver.txt @@ -24,12 +24,12 @@ FILE: importedReceiver.kt } public final fun test(): R|kotlin/Unit| { - Int(42).R|/foo|() - String().R|/foo|() - Int(42).R|/My.bar|() - String().R|/My.bar|() + E|Int(42)|.R|/foo|() + E|String()|.R|/foo|() + E|Int(42)|.R|/My.bar|() + E|String()|.R|/My.bar|() R|/My.baz|() - Boolean(true).R|/My.gau|() + E|Boolean(true)|.R|/My.gau|() R|FakeOverride|() Boolean(false).#() } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver.txt index 25436acc6a9..44b923b6950 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver.txt @@ -14,7 +14,7 @@ FILE: explicitReceiver.kt } public final fun bar(): R|Foo| { - ^bar R|/Foo.x|.R|/Foo.invoke|() + ^bar D|R|/Foo.x||.R|/Foo.invoke|() } } @@ -34,7 +34,7 @@ FILE: explicitReceiver.kt } public final fun baz(): R|kotlin/Unit| { - R|/Bar.x|() + D|this@R|/Bar||.R|/Bar.x|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver2.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver2.txt index 96b05b6e029..1b9ab17bd7b 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver2.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/explicitReceiver2.txt @@ -24,7 +24,7 @@ FILE: explicitReceiver2.kt public get(): R|Bar| public final fun bar(): R|Foo| { - ^bar R|/Foo.x|.R|/Bar.invoke|() + ^bar D|R|/Foo.x||.R|/Bar.invoke|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/extension.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/extension.txt index 36aa54f067e..caaa745d050 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/invoke/extension.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/extension.txt @@ -14,7 +14,7 @@ FILE: extension.kt public get(): R|kotlin/Int| public final fun foo(): R|Foo| { - ^foo R|/Foo.x|.R|/Foo.invoke|() + ^foo D|this@R|/Foo||E|R|/Foo.x||.R|/Foo.invoke|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/implicitTypeOrder.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/implicitTypeOrder.txt index 122a093634f..2eccbbc2172 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/invoke/implicitTypeOrder.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/implicitTypeOrder.txt @@ -5,7 +5,7 @@ FILE: implicitTypeOrder.kt } public final fun bar(): R|A| { - ^bar R|/foo|.R|/A.invoke|() + ^bar D|R|/foo||.R|/A.invoke|() } public final fun invoke(): R|A| { diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/propertyFromParameter.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/propertyFromParameter.txt index 6b3f2ecc410..fb0c496717b 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/invoke/propertyFromParameter.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/propertyFromParameter.txt @@ -4,7 +4,7 @@ FILE: propertyFromParameter.kt super() } - public final val name: R|kotlin/String| = R|/name|.R|FakeOverride|() + public final val name: R|kotlin/String| = D|R|/name||.R|FakeOverride|() public get(): R|kotlin/String| } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/simple.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/simple.txt index 66e16836aa6..b3951449ebe 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/invoke/simple.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/simple.txt @@ -10,5 +10,5 @@ FILE: simple.kt } public final fun test(s: R|Simple|): R|kotlin/Unit| { - lval result: R|kotlin/String| = R|/s|.R|/Simple.invoke|() + lval result: R|kotlin/String| = D|R|/s||.R|/Simple.invoke|() } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/localExtension.txt b/compiler/fir/resolve/testData/resolve/expresssions/localExtension.txt index 936c16306ab..4a0c9040ed5 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/localExtension.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/localExtension.txt @@ -8,7 +8,7 @@ FILE: localExtension.kt local final fun R|Foo|.bar(): R|kotlin/Unit| { } - R|/bar|() + E|this@R|/Foo||.R|/bar|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/memberExtension.txt b/compiler/fir/resolve/testData/resolve/expresssions/memberExtension.txt index 6fe44208564..5a2ba297e4f 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/memberExtension.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/memberExtension.txt @@ -5,7 +5,7 @@ FILE: memberExtension.kt } public final fun bar(arg: R|Bar|): R|kotlin/Unit| { - R|/arg|.R|/foo|() + E|R|/arg||.R|/foo|() } } @@ -20,7 +20,7 @@ FILE: memberExtension.kt } public final fun bar(arg: R|Foo|): R|kotlin/Unit| { - R|/arg|.R|/Bar.foo|() + D|this@R|/Bar||E|R|/arg||.R|/Bar.foo|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/objects.txt b/compiler/fir/resolve/testData/resolve/expresssions/objects.txt index 850e089eafe..4262d48774f 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/objects.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/objects.txt @@ -13,5 +13,5 @@ FILE: objects.kt ^use Q|A| } public final fun bar(): R|A| { - ^bar Q|A|.R|/A.foo|() + ^bar D|Q|A||.R|/A.foo|() } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/outerObject.txt b/compiler/fir/resolve/testData/resolve/expresssions/outerObject.txt index 617d2f04dc2..97dec03c556 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/outerObject.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/outerObject.txt @@ -19,7 +19,7 @@ FILE: outerObject.kt public get(): R|kotlin/Int| public final fun test(): R|kotlin/Unit| { - R|/Outer.foo|() + E|this@R|/Outer.Nested||.R|/Outer.foo|() } } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt b/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt index d853eb13249..548b1d64681 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/qualifiedExpressions.txt @@ -47,11 +47,11 @@ FILE: qualifiedExpressions.kt public get(): R|kotlin/Int| public final fun main(): R|kotlin/Unit| { Q|a/b|.R|a/b/foo|() - Q|a/b/C|.R|a/b/C.Companion.foo|() - Q|a/b/C.D|.R|a/b/C.D.foo|() + D|Q|a/b/C||.R|a/b/C.Companion.foo|() + D|Q|a/b/C.D||.R|a/b/C.D.foo|() lval x: R|kotlin/Int| = Q|a/b|.R|a/b/f| - Q|a/b/C|.R|a/b/C.Companion.foo|() - R|a/b/C.C|().R|a/b/C.foo|() + D|Q|a/b/C||.R|a/b/C.Companion.foo|() + D|R|a/b/C.C|()|.R|a/b/C.foo|() lval e: R|a/b/E| = Q|a/b/E.entry| lval e1: R|a/b/E| = Q|a/b/E.entry| } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/receiverConsistency.txt b/compiler/fir/resolve/testData/resolve/expresssions/receiverConsistency.txt index 59c45cc154d..64a9de9e8c0 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/receiverConsistency.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/receiverConsistency.txt @@ -27,7 +27,7 @@ FILE: receiverConsistency.kt public final fun test(): R|kotlin/Unit| { lval c: R|C| = R|/C.C|() R|/foo|() - R|/c|.R|/C.bar|() + D|R|/c||.R|/C.bar|() lval err: R|C| = R|/C.C|() R|/err|.#() } diff --git a/compiler/fir/resolve/testData/resolve/expresssions/sameReceiver.txt b/compiler/fir/resolve/testData/resolve/expresssions/sameReceiver.txt index d791499a3ba..38ce34d4a50 100644 --- a/compiler/fir/resolve/testData/resolve/expresssions/sameReceiver.txt +++ b/compiler/fir/resolve/testData/resolve/expresssions/sameReceiver.txt @@ -8,7 +8,7 @@ FILE: sameReceiver.kt } public final fun test(): R|kotlin/Unit| { - R|/Foo.bar|() + D|this@R|/Foo||E|this@R|/Foo||.R|/Foo.bar|() } } diff --git a/compiler/fir/resolve/testData/resolve/extension.txt b/compiler/fir/resolve/testData/resolve/extension.txt index 1fe03c7f442..86d33a913f6 100644 --- a/compiler/fir/resolve/testData/resolve/extension.txt +++ b/compiler/fir/resolve/testData/resolve/extension.txt @@ -2,7 +2,7 @@ FILE: extension.kt public final fun R|kotlin/String|.foo(): R|kotlin/Unit| { } public final fun R|kotlin/String|.bar(): R|kotlin/Unit| { - R|/foo|() + E|this@R|/bar||.R|/foo|() } public final class My : R|kotlin/Any| { public constructor(): R|My| { @@ -10,7 +10,7 @@ FILE: extension.kt } public final fun bar(): R|kotlin/Unit| { - R|/foo|() + E|this@R|/My||.R|/foo|() } } diff --git a/compiler/fir/resolve/testData/resolve/fib.txt b/compiler/fir/resolve/testData/resolve/fib.txt index be7cde8c29f..5479b1bdd9c 100644 --- a/compiler/fir/resolve/testData/resolve/fib.txt +++ b/compiler/fir/resolve/testData/resolve/fib.txt @@ -10,10 +10,10 @@ FILE: fib.kt lvar current: R|kotlin/Int| = Int(1) lvar prev: R|kotlin/Int| = Int(1) - lval : R|kotlin/ranges/IntRange| = Int(2).R|kotlin/Int.rangeTo|(R|/n|) - lval : R|kotlin/collections/IntIterator| = R|/|.R|kotlin/ranges/IntProgression.iterator|() - while(R|/|.R|FakeOverride|()) { - lval i: R|kotlin/Int| = R|/|.R|kotlin/collections/IntIterator.next|() + lval : R|kotlin/ranges/IntRange| = D|Int(2)|.R|kotlin/Int.rangeTo|(R|/n|) + lval : R|kotlin/collections/IntIterator| = D|R|/||.R|kotlin/ranges/IntProgression.iterator|() + while(D|R|/||.R|FakeOverride|()) { + lval i: R|kotlin/Int| = D|R|/||.R|kotlin/collections/IntIterator.next|() lval temp: R|kotlin/Int| = R|/current| R|/current| += R|/prev| R|/prev| = R|/temp| diff --git a/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt b/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt index 66c402ae61e..ed219cb8708 100644 --- a/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt +++ b/compiler/fir/resolve/testData/resolve/fromBuilder/enums.txt @@ -70,7 +70,7 @@ FILE: enums.kt } - public final val g: R|kotlin/Double| = R|/Planet.Companion.G|.R|kotlin/Double.times|(R|/m|).R|kotlin/Double.div|(R|/r|.R|kotlin/Double.times|(R|/r|)) + public final val g: R|kotlin/Double| = D|D|R|/Planet.Companion.G||.R|kotlin/Double.times|(R|/m|)|.R|kotlin/Double.div|(D|R|/r||.R|kotlin/Double.times|(R|/r|)) public get(): R|kotlin/Double| public abstract fun sayHello(): R|kotlin/Unit| diff --git a/compiler/fir/resolve/testData/resolve/fromBuilder/noPrimaryConstructor.txt b/compiler/fir/resolve/testData/resolve/fromBuilder/noPrimaryConstructor.txt index 20a04461b55..0c78d207cc8 100644 --- a/compiler/fir/resolve/testData/resolve/fromBuilder/noPrimaryConstructor.txt +++ b/compiler/fir/resolve/testData/resolve/fromBuilder/noPrimaryConstructor.txt @@ -5,7 +5,7 @@ FILE: noPrimaryConstructor.kt public constructor(x: R|kotlin/String|): R|NoPrimary| { super() - this@R|/NoPrimary|.R|/NoPrimary.x| = R|/x| + D|this@R|/NoPrimary||.R|/NoPrimary.x| = R|/x| } public constructor(): R|NoPrimary| { diff --git a/compiler/fir/resolve/testData/resolve/fromBuilder/simpleClass.txt b/compiler/fir/resolve/testData/resolve/fromBuilder/simpleClass.txt index e5b99c2639a..356340f905a 100644 --- a/compiler/fir/resolve/testData/resolve/fromBuilder/simpleClass.txt +++ b/compiler/fir/resolve/testData/resolve/fromBuilder/simpleClass.txt @@ -15,7 +15,7 @@ FILE: simpleClass.kt private get(): R|kotlin/Int| public final override fun foo(x: R|kotlin/Int|, y: R|kotlin/String|): R|kotlin/String| { - ^foo R|/y|.R|kotlin/String.plus|(R|/x|).R|kotlin/String.plus|(R|/SomeClass.baz|) + ^foo D|D|R|/y||.R|kotlin/String.plus|(R|/x|)|.R|kotlin/String.plus|(D|this@R|/SomeClass||.R|/SomeClass.baz|) } public final override var bar: R|kotlin/Boolean| diff --git a/compiler/fir/resolve/testData/resolve/functionTypes.txt b/compiler/fir/resolve/testData/resolve/functionTypes.txt index 3f2ecccc3a7..920546e10d4 100644 --- a/compiler/fir/resolve/testData/resolve/functionTypes.txt +++ b/compiler/fir/resolve/testData/resolve/functionTypes.txt @@ -1,6 +1,6 @@ FILE: functionTypes.kt public final fun simpleRun(f: R|kotlin/Function1|): R|kotlin/Unit| { - ^simpleRun R|/f|.R|FakeOverride|(^simpleRun Unit) + ^simpleRun D|R|/f||.R|FakeOverride|(^simpleRun Unit) } public final fun R|kotlin/collections/List|.simpleMap(f: R|kotlin/Function1|): R|R| { } diff --git a/compiler/fir/resolve/testData/resolve/localObject.txt b/compiler/fir/resolve/testData/resolve/localObject.txt index eccbba613b9..0a40de8ad7a 100644 --- a/compiler/fir/resolve/testData/resolve/localObject.txt +++ b/compiler/fir/resolve/testData/resolve/localObject.txt @@ -1,6 +1,6 @@ FILE: localObject.kt public final fun run(block: R|kotlin/Function0|): R|T| { - ^run R|/block|.R|FakeOverride|() + ^run D|R|/block||.R|FakeOverride|() } public abstract interface Foo : R|kotlin/Any| { public abstract fun foo(): R|kotlin/Int| @@ -14,7 +14,7 @@ FILE: localObject.kt } public final override fun foo(): R|kotlin/Int| { - ^foo R|/x|.R|kotlin/Int.plus|(Int(1)) + ^foo D|R|/x||.R|kotlin/Int.plus|(Int(1)) } } @@ -40,7 +40,7 @@ FILE: localObject.kt } public final override fun foo(): R|kotlin/Int| { - ^foo R|/TestProperty.intConst|.R|kotlin/Int.plus|(Int(1)) + ^foo D|D|this@R|/TestProperty||.R|/TestProperty.intConst||.R|kotlin/Int.plus|(Int(1)) } } @@ -56,7 +56,7 @@ FILE: localObject.kt } public final override fun foo(): R|kotlin/Int| { - ^foo R|/TestProperty.intConst|.R|kotlin/Int.plus|(Int(1)) + ^foo D|D|this@R|/TestProperty||.R|/TestProperty.intConst||.R|kotlin/Int.plus|(Int(1)) } } @@ -71,7 +71,7 @@ FILE: localObject.kt } public final override fun foo(): R|kotlin/Int| { - ^foo R|/TestProperty.x|.R|kotlin/Int.plus|(Int(1)) + ^foo D|D|this@R|/TestProperty||.R|/TestProperty.x||.R|kotlin/Int.plus|(Int(1)) } } diff --git a/compiler/fir/resolve/testData/resolve/nested/inner.txt b/compiler/fir/resolve/testData/resolve/nested/inner.txt index 6a814c72516..9abe46c7a5a 100644 --- a/compiler/fir/resolve/testData/resolve/nested/inner.txt +++ b/compiler/fir/resolve/testData/resolve/nested/inner.txt @@ -5,13 +5,13 @@ FILE: inner.kt } public final fun foo(): R|kotlin/Unit| { - R|/Owner.bar|() - this@R|/Owner|.R|/Owner.bar|() + D|this@R|/Owner||.R|/Owner.bar|() + D|this@R|/Owner||.R|/Owner.bar|() } public final fun bar(): R|kotlin/Unit| { lval i: R|Owner.Inner| = R|/Owner.Inner.Inner|() - R|/i|.R|/Owner.Inner.baz|() + D|R|/i||.R|/Owner.Inner.baz|() } public final fun err(): R|kotlin/Unit| { @@ -23,15 +23,15 @@ FILE: inner.kt } public final fun baz(): R|kotlin/Unit| { - R|/Owner.Inner.gau|() - this@R|/Owner.Inner|.R|/Owner.Inner.gau|() + D|this@R|/Owner.Inner||.R|/Owner.Inner.gau|() + D|this@R|/Owner.Inner||.R|/Owner.Inner.gau|() } public final fun gau(): R|kotlin/Unit| { lval o: R|Owner| = R|/Owner.Owner|() - R|/o|.R|/Owner.foo|() - R|/Owner.foo|() - this@R|/Owner|.R|/Owner.foo|() + D|R|/o||.R|/Owner.foo|() + D|this@R|/Owner||.R|/Owner.foo|() + D|this@R|/Owner||.R|/Owner.foo|() this@R|/Owner.Inner|.#() } @@ -40,9 +40,9 @@ FILE: inner.kt } public final fun test(): R|kotlin/Unit| { lval o: R|Owner| = R|/Owner.Owner|() - R|/o|.R|/Owner.foo|() + D|R|/o||.R|/Owner.foo|() lval err: = Q|Owner|.#() R|/err|.#() - lval i: R|Owner.Inner| = R|/o|.R|/Owner.Inner.Inner|() - R|/i|.R|/Owner.Inner.gau|() + lval i: R|Owner.Inner| = D|R|/o||.R|/Owner.Inner.Inner|() + D|R|/i||.R|/Owner.Inner.gau|() } diff --git a/compiler/fir/resolve/testData/resolve/nested/simple.txt b/compiler/fir/resolve/testData/resolve/nested/simple.txt index d098af2b959..c11ce7a2437 100644 --- a/compiler/fir/resolve/testData/resolve/nested/simple.txt +++ b/compiler/fir/resolve/testData/resolve/nested/simple.txt @@ -5,13 +5,13 @@ FILE: simple.kt } public final fun foo(): R|kotlin/Unit| { - R|/Owner.bar|() - this@R|/Owner|.R|/Owner.bar|() + D|this@R|/Owner||.R|/Owner.bar|() + D|this@R|/Owner||.R|/Owner.bar|() } public final fun bar(): R|kotlin/Unit| { lval n: R|Owner.Nested| = R|/Owner.Nested.Nested|() - R|/n|.R|/Owner.Nested.baz|() + D|R|/n||.R|/Owner.Nested.baz|() } public final class Nested : R|kotlin/Any| { @@ -20,13 +20,13 @@ FILE: simple.kt } public final fun baz(): R|kotlin/Unit| { - R|/Owner.Nested.gau|() - this@R|/Owner.Nested|.R|/Owner.Nested.gau|() + D|this@R|/Owner.Nested||.R|/Owner.Nested.gau|() + D|this@R|/Owner.Nested||.R|/Owner.Nested.gau|() } public final fun gau(): R|kotlin/Unit| { lval o: R|Owner| = R|/Owner.Owner|() - R|/o|.R|/Owner.foo|() + D|R|/o||.R|/Owner.foo|() } public final fun err(): R|kotlin/Unit| { @@ -39,7 +39,7 @@ FILE: simple.kt } public final fun test(): R|kotlin/Unit| { lval o: R|Owner| = R|/Owner.Owner|() - R|/o|.R|/Owner.foo|() + D|R|/o||.R|/Owner.foo|() lval n: = Q|Owner|.#() R|/n|.#() } diff --git a/compiler/fir/resolve/testData/resolve/overrides/generics.txt b/compiler/fir/resolve/testData/resolve/overrides/generics.txt index 9f07dc62857..620bbea9f95 100644 --- a/compiler/fir/resolve/testData/resolve/overrides/generics.txt +++ b/compiler/fir/resolve/testData/resolve/overrides/generics.txt @@ -19,5 +19,5 @@ FILE: generics.kt } public final fun f(list: R|kotlin/collections/List|): R|kotlin/Unit| { - R|/C.C|().R|/Base.f|(R|/list|) + D|R|/C.C|()|.R|/Base.f|(R|/list|) } diff --git a/compiler/fir/resolve/testData/resolve/overrides/simple.txt b/compiler/fir/resolve/testData/resolve/overrides/simple.txt index 381dab00501..1b4722d429f 100644 --- a/compiler/fir/resolve/testData/resolve/overrides/simple.txt +++ b/compiler/fir/resolve/testData/resolve/overrides/simple.txt @@ -35,8 +35,8 @@ FILE: simple.kt } public final fun test(): R|kotlin/Unit| { - R|/B.foo|() - R|/B.bar|() + D|this@R|/B||.R|/B.foo|() + D|this@R|/B||.R|/B.bar|() #() } diff --git a/compiler/fir/resolve/testData/resolve/overrides/simpleFakeOverride.txt b/compiler/fir/resolve/testData/resolve/overrides/simpleFakeOverride.txt index b5581c1b58b..20cc93ec16c 100644 --- a/compiler/fir/resolve/testData/resolve/overrides/simpleFakeOverride.txt +++ b/compiler/fir/resolve/testData/resolve/overrides/simpleFakeOverride.txt @@ -21,7 +21,7 @@ FILE: simpleFakeOverride.kt } public final fun test(): R|kotlin/Unit| { - R|FakeOverride|(R|/Some.Some|()) + D|this@R|/A||.R|FakeOverride|(R|/Some.Some|()) } } diff --git a/compiler/fir/resolve/testData/resolve/overrides/three.txt b/compiler/fir/resolve/testData/resolve/overrides/three.txt index 63ad2a07394..802ff9b4835 100644 --- a/compiler/fir/resolve/testData/resolve/overrides/three.txt +++ b/compiler/fir/resolve/testData/resolve/overrides/three.txt @@ -19,8 +19,8 @@ FILE: three.kt } public final fun bar(): R|kotlin/Unit| { - R|/A.foo|() - R|/Y.baz|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/Y||.R|/Y.baz|() } } @@ -30,9 +30,9 @@ FILE: three.kt } public final fun test(): R|kotlin/Unit| { - R|/A.foo|() - R|/B.bar|() - R|/Y.baz|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/B||.R|/B.bar|() + D|this@R|/Y||.R|/Y.baz|() } } diff --git a/compiler/fir/resolve/testData/resolve/references/superMember.txt b/compiler/fir/resolve/testData/resolve/references/superMember.txt index 7732b397a92..4dfcccf8740 100644 --- a/compiler/fir/resolve/testData/resolve/references/superMember.txt +++ b/compiler/fir/resolve/testData/resolve/references/superMember.txt @@ -14,7 +14,7 @@ FILE: superMember.kt } public final fun bar(): R|kotlin/Unit| { - R|/A.foo|() + D|this@R|/A||.R|/A.foo|() } } diff --git a/compiler/fir/resolve/testData/resolve/simpleClass.txt b/compiler/fir/resolve/testData/resolve/simpleClass.txt index 1228a88d511..c06c7f627cc 100644 --- a/compiler/fir/resolve/testData/resolve/simpleClass.txt +++ b/compiler/fir/resolve/testData/resolve/simpleClass.txt @@ -15,7 +15,7 @@ FILE: simpleClass.kt private get(): R|kotlin/Int| public final override fun foo(x: R|kotlin/Int|, y: R|kotlin/String|): R|kotlin/String| { - ^foo R|/y|.R|kotlin/String.plus|(R|/x|).R|kotlin/String.plus|(R|/SomeClass.baz|) + ^foo D|D|R|/y||.R|kotlin/String.plus|(R|/x|)|.R|kotlin/String.plus|(D|this@R|/SomeClass||.R|/SomeClass.baz|) } public final override var bar: R|kotlin/Boolean| diff --git a/compiler/fir/resolve/testData/resolve/stdlib/arrayFirstOrNull.txt b/compiler/fir/resolve/testData/resolve/stdlib/arrayFirstOrNull.txt index 13538e9090e..9a2085d00c1 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/arrayFirstOrNull.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/arrayFirstOrNull.txt @@ -5,15 +5,15 @@ FILE: arrayFirstOrNull.kt } public final fun goo(g: R|G|): R|kotlin/Unit| { - lval x: R|G?| = R|/g|.R|/G.a|.R|/firstOrNullX|() + lval x: R|G?| = E|D|R|/g||.R|/G.a||.R|/firstOrNullX|() } public final fun R|kotlin/Array|.firstOrNullX(): R|T?| { ^firstOrNullX when () { - R|kotlin/collections/isEmpty|() -> { + E|this@R|/firstOrNullX||.R|kotlin/collections/isEmpty|() -> { Null(null) } else -> { - this@R|/firstOrNullX|.R|FakeOverride|(Int(0)) + D|this@R|/firstOrNullX||.R|FakeOverride|(Int(0)) } } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/backingField.txt b/compiler/fir/resolve/testData/resolve/stdlib/backingField.txt index f946915c4b9..72efe85fd7b 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/backingField.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/backingField.txt @@ -1,7 +1,7 @@ FILE: backingField.kt public final var myProperty: R|kotlin/collections/List| = R|kotlin/collections/listOf|(Int(1), Int(2), Int(3)) public get(): R|kotlin/collections/List| { - ^ F|/myProperty|.R|kotlin/collections/plus|(F|/myProperty|) + ^ E|F|/myProperty||.R|kotlin/collections/plus|(F|/myProperty|) } public set(param: R|kotlin/collections/List|): R|kotlin/Unit| { F|/myProperty| = R|/param| diff --git a/compiler/fir/resolve/testData/resolve/stdlib/companionLoad.txt b/compiler/fir/resolve/testData/resolve/stdlib/companionLoad.txt index db2cd3e4611..4e264213766 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/companionLoad.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/companionLoad.txt @@ -1,4 +1,4 @@ FILE: companionLoad.kt public final fun main(): R|kotlin/Unit| { - lval y: R|kotlin/Int| = Q|kotlin/Int|.R|kotlin/Int.Companion.MAX_VALUE| + lval y: R|kotlin/Int| = D|Q|kotlin/Int||.R|kotlin/Int.Companion.MAX_VALUE| } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/components.txt b/compiler/fir/resolve/testData/resolve/stdlib/components.txt index 7489968a4ee..9faf9510aca 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/components.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/components.txt @@ -24,19 +24,19 @@ FILE: components.kt } public final fun foo(list: R|kotlin/collections/List|): R|kotlin/Unit| { lval : R|kotlin/collections/List| = R|/list| - lval : R|kotlin/collections/Iterator| = R|/|.R|FakeOverride|>|() - while(R|/|.R|FakeOverride|()) { - lval : R|D| = R|/|.R|FakeOverride|() - lval x: R|kotlin/Int| = R|/|.R|/D.component1|() - lval y: R|kotlin/String| = R|/|.R|/D.component2|() + lval : R|kotlin/collections/Iterator| = D|R|/||.R|FakeOverride|>|() + while(D|R|/||.R|FakeOverride|()) { + lval : R|D| = D|R|/||.R|FakeOverride|() + lval x: R|kotlin/Int| = D|R|/||.R|/D.component1|() + lval y: R|kotlin/String| = D|R|/||.R|/D.component2|() } - lval : R|D| = R|/list|.R|kotlin/collections/first|() - lval x: R|kotlin/Int| = R|/|.R|/D.component1|() - lval y: R|kotlin/String| = R|/|.R|/D.component2|() - R|/list|.R|kotlin/collections/forEach|( = forEach@fun (: R|D|): R|kotlin/Unit| { - lval x: R|kotlin/Int| = R|/|.R|/D.component1|() - lval y: R|kotlin/String| = R|/|.R|/D.component2|() + lval : R|D| = E|R|/list||.R|kotlin/collections/first|() + lval x: R|kotlin/Int| = D|R|/||.R|/D.component1|() + lval y: R|kotlin/String| = D|R|/||.R|/D.component2|() + E|R|/list||.R|kotlin/collections/forEach|( = forEach@fun (: R|D|): R|kotlin/Unit| { + lval x: R|kotlin/Int| = D|R|/||.R|/D.component1|() + lval y: R|kotlin/String| = D|R|/||.R|/D.component2|() R|kotlin/io/println|(R|/x|) R|kotlin/io/println|(R|/y|) } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/factoryFunctionOverloads.txt b/compiler/fir/resolve/testData/resolve/stdlib/factoryFunctionOverloads.txt index b6b9defbd83..f03c78d4d6e 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/factoryFunctionOverloads.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/factoryFunctionOverloads.txt @@ -18,7 +18,7 @@ FILE: factoryFunctionOverloads.kt , R|/flag|) } public final fun A(c: R|C|, flag: R|kotlin/Boolean| = Boolean(true)): R|A| { - ^A R|/A.A|(R|/c|.R|/C.b|, R|/flag|) + ^A R|/A.A|(D|R|/c||.R|/C.b|, R|/flag|) } public final class A : R|kotlin/Any| { public constructor(b: R|B|, flag: R|kotlin/Boolean| = Boolean(true)): R|A| { diff --git a/compiler/fir/resolve/testData/resolve/stdlib/hashSet.txt b/compiler/fir/resolve/testData/resolve/stdlib/hashSet.txt index 1a5a93b2ff4..5ca4e88e77c 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/hashSet.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/hashSet.txt @@ -18,7 +18,7 @@ FILE: hashSet.kt public final fun foo(): R|kotlin/Unit| { lvar c: R|kotlin/collections/MutableSet?| = Null(null) R|/c| = R|java/util/HashSet.HashSet|() - when (lval : R|kotlin/collections/MutableSet?| = R|/c|) { + E|when (lval : R|kotlin/collections/MutableSet?| = R|/c|) { ==($subj$, Null(null)) -> { throw R|kotlin/KotlinNullPointerException.KotlinNullPointerException|() } @@ -26,5 +26,5 @@ FILE: hashSet.kt R|/|! } } - .R|/d| = R|/produce|() + |.R|/d| = R|/produce|() } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/implicitReceiverOrder.txt b/compiler/fir/resolve/testData/resolve/stdlib/implicitReceiverOrder.txt index f59fab10732..bc22bed1413 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/implicitReceiverOrder.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/implicitReceiverOrder.txt @@ -30,16 +30,16 @@ FILE: implicitReceiverOrder.kt public final fun test(a: R|A|, b: R|B|): R|kotlin/Unit| { R|kotlin/with|(R|/b|, = with@fun R|B|.(it: R|B|): R|kotlin/Unit| { R|kotlin/with|(R|/a|, = with@fun R|A|.(it: R|A|): R|kotlin/Unit| { - R|/A.foo|() - R|/B.bar|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/B||E|this@R|special/anonymous||.R|/B.bar|() } ) } ) R|kotlin/with|(R|/a|, = with@fun R|A|.(it: R|A|): R|kotlin/Unit| { R|kotlin/with|(R|/b|, = with@fun R|B|.(it: R|B|): R|kotlin/Unit| { - R|/B.foo|() - R|/A.bar|() + D|this@R|/B||.R|/B.foo|() + D|this@R|/A||E|this@R|special/anonymous||.R|/A.bar|() } ) } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/mapList.txt b/compiler/fir/resolve/testData/resolve/stdlib/mapList.txt index f13425a12bd..52d0a8c3cd3 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/mapList.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/mapList.txt @@ -1,13 +1,13 @@ FILE: mapList.kt public final fun main(): R|kotlin/Unit| { lval x: R|kotlin/collections/List| = R|kotlin/collections/emptyList|() - lval u: R|kotlin/collections/List| = R|/x|.R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { - R|/it|.R|kotlin/Int.plus|(R|/it|) + lval u: R|kotlin/collections/List| = E|R|/x||.R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { + D|R|/it||.R|kotlin/Int.plus|(R|/it|) } ) - R|/u|.R|/applyX||>( = applyX@fun R|kotlin/collections/List|.(it: R|kotlin/collections/List|): R|kotlin/Unit| { - this@R|special/anonymous|.R|FakeOverride|(Int(1)) - R|FakeOverride|(Int(1)) + E|R|/u||.R|/applyX||>( = applyX@fun R|kotlin/collections/List|.(it: R|kotlin/collections/List|): R|kotlin/Unit| { + D|this@R|special/anonymous||.R|FakeOverride|(Int(1)) + D|this@R|kotlin/collections/List||.R|FakeOverride|(Int(1)) } ) } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/multipleImplicitReceivers.txt b/compiler/fir/resolve/testData/resolve/stdlib/multipleImplicitReceivers.txt index e45d644d96f..34fc7b1639b 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/multipleImplicitReceivers.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/multipleImplicitReceivers.txt @@ -27,9 +27,9 @@ FILE: multipleImplicitReceivers.kt public final fun test(fooImpl: R|IFoo|, invokeImpl: R|IInvoke|): R|kotlin/Unit| { R|kotlin/with|(Q|A|, = with@fun R|A|.(it: R|A|): R|kotlin/Unit| { R|kotlin/with|(R|/fooImpl|, = with@fun R|IFoo|.(it: R|IFoo|): R|kotlin/Unit| { - R|/IFoo.foo| + D|this@R|/IFoo||E|this@R|special/anonymous||.R|/IFoo.foo| R|kotlin/with|(R|/invokeImpl|, = with@fun R|IInvoke|.(it: R|IInvoke|): R|kotlin/Unit| { - R|/IFoo.foo|.R|/IInvoke.invoke|() + D|this@R|/IInvoke||E|R|/IFoo.foo||.R|/IInvoke.invoke|() } ) } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/recursiveBug.txt b/compiler/fir/resolve/testData/resolve/stdlib/recursiveBug.txt index f31f9d4de93..ad8a2bc72c5 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/recursiveBug.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/recursiveBug.txt @@ -4,20 +4,20 @@ FILE: recursiveBug.kt super() } - public final val result: R|kotlin/String| = R|kotlin/run|( = run@fun R|Foo|.(it: R|Foo|): R|kotlin/String| { - R|/name|.R|FakeOverride|() + public final val result: R|kotlin/String| = E|this@R|/Foo||.R|kotlin/run|( = run@fun R|Foo|.(it: R|Foo|): R|kotlin/String| { + D|R|/name||.R|FakeOverride|() } ) public get(): R|kotlin/String| - public final val name: R|kotlin/Int| = R|/Foo.result|.R|kotlin/String.length| + public final val name: R|kotlin/Int| = D|D|this@R|/Foo||.R|/Foo.result||.R|kotlin/String.length| public get(): R|kotlin/Int| } public final fun bar(name: R|kotlin/Function0|): R|kotlin/Unit| { lval result: R|kotlin/String| = R|kotlin/run|( = run@fun (): R|kotlin/String| { - R|/name|.R|FakeOverride|() + D|R|/name||.R|FakeOverride|() } ) - lval name: R|kotlin/Int| = R|/result|.R|kotlin/String.length| + lval name: R|kotlin/Int| = D|R|/result||.R|kotlin/String.length| } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/reflectionClass.txt b/compiler/fir/resolve/testData/resolve/stdlib/reflectionClass.txt index 5e05b619819..f6c66f59ab7 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/reflectionClass.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/reflectionClass.txt @@ -1,5 +1,5 @@ FILE: reflectionClass.kt - public final val javaClass: R|java/lang/Class| = (Q|kotlin/String|).R|kotlin/jvm/java| + public final val javaClass: R|java/lang/Class| = E|(Q|kotlin/String|)|.R|kotlin/jvm/java| public get(): R|java/lang/Class| public final val kotlinClass: R|kotlin/reflect/KClass| = (Q|kotlin/String|) public get(): R|kotlin/reflect/KClass| diff --git a/compiler/fir/resolve/testData/resolve/stdlib/simpleDelegateProvider.txt b/compiler/fir/resolve/testData/resolve/stdlib/simpleDelegateProvider.txt index 505566539ea..b6442f381db 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/simpleDelegateProvider.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/simpleDelegateProvider.txt @@ -8,7 +8,7 @@ FILE: simpleDelegateProvider.kt public get(): R|kotlin/String| public final operator fun getValue(thisRef: R|kotlin/Any?|, property: R|kotlin/Any?|): R|kotlin/String| { - ^getValue R|/Delegate.value| + ^getValue D|this@R|/Delegate||.R|/Delegate.value| } } @@ -21,11 +21,11 @@ FILE: simpleDelegateProvider.kt public get(): R|kotlin/String| public final operator fun provideDelegate(thisRef: R|kotlin/Any?|, property: R|kotlin/Any?|): R|Delegate| { - ^provideDelegate R|/Delegate.Delegate|(R|/DelegateProvider.value|) + ^provideDelegate R|/Delegate.Delegate|(D|this@R|/DelegateProvider||.R|/DelegateProvider.value|) } } - public final val testTopLevel: R|kotlin/String|by R|/DelegateProvider.DelegateProvider|(String(OK)).R|/DelegateProvider.provideDelegate|(Null(null), ::R|/testTopLevel|) + public final val testTopLevel: R|kotlin/String|by D|R|/DelegateProvider.DelegateProvider|(String(OK))|.R|/DelegateProvider.provideDelegate|(Null(null), ::R|/testTopLevel|) public get(): R|kotlin/String| { - ^ D|/testTopLevel|.R|/Delegate.getValue|(Null(null), ::R|/testTopLevel|) + ^ D|D|/testTopLevel||.R|/Delegate.getValue|(Null(null), ::R|/testTopLevel|) } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/simpleLazy.txt b/compiler/fir/resolve/testData/resolve/stdlib/simpleLazy.txt index c1d5a15e543..ddd71d156e0 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/simpleLazy.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/simpleLazy.txt @@ -4,13 +4,13 @@ FILE: simpleLazy.kt } ) public get(): R|kotlin/String| { - ^ D|/x|.R|kotlin/getValue|(Null(null), ::R|/x|) + ^ E|D|/x||.R|kotlin/getValue|(Null(null), ::R|/x|) } public final fun foo(): R|kotlin/Unit| { - R|/x|.R|kotlin/String.length| + D|R|/x||.R|kotlin/String.length| lval y: R|kotlin/String|by R|kotlin/lazy|( = lazy@fun (): R|kotlin/String| { String(Bye) } ) - R|/y|.R|kotlin/String.length| + D|R|/y||.R|kotlin/String.length| } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/topLevelResolve.txt b/compiler/fir/resolve/testData/resolve/stdlib/topLevelResolve.txt index cdd09763226..237377b8396 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/topLevelResolve.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/topLevelResolve.txt @@ -1,43 +1,43 @@ FILE: topLevelResolve.kt public final fun testPlus(): R|kotlin/Unit| { - lval x: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(2)) - lval y: R|kotlin/Double| = Double(3.0).R|kotlin/Double.plus|(Double(4.0)) - lval z: R|kotlin/Double| = Int(5).R|kotlin/Int.plus|(Double(6.0)) - lval w: R|kotlin/Double| = Double(7.0).R|kotlin/Double.plus|(Int(8)) - lval c: R|kotlin/Char| = Char(a).R|kotlin/Char.plus|(Int(1)) - lval s: R|kotlin/String| = String(.).R|kotlin/String.plus|(String(..)) - lval ss: R|kotlin/String| = String().R|kotlin/String.plus|(Int(1)) - lval list: R|kotlin/collections/List| = R|kotlin/collections/listOf|(Int(1), Int(2), Int(3)).R|kotlin/collections/plus|(Int(4)) - lval listAndList: R|kotlin/collections/List| = R|kotlin/collections/listOf|(Int(4), Int(5), Int(6)).R|kotlin/collections/plus|(R|kotlin/collections/listOf|(Int(7), Int(8))) - lval mutableList: R|kotlin/collections/List| = R|kotlin/collections/mutableListOf|(Int(9), Int(10)).R|kotlin/collections/plus|(R|kotlin/collections/listOf|(Int(11), Int(12), Int(13))) - lval setAndList: R|kotlin/collections/Set| = R|kotlin/collections/setOf|(Int(0)).R|kotlin/collections/plus|(R|kotlin/collections/listOf|(Int(1), Int(2))) - lval stringAndList: R|kotlin/String| = String().R|kotlin/String.plus|(R|kotlin/collections/emptyList|()) - lval map: R|kotlin/collections/Map| = R|kotlin/collections/mapOf|(String().R|kotlin/to|(Int(1)), String(.).R|kotlin/to|(Int(2))).R|kotlin/collections/plus|(String(..).R|kotlin/to|(Int(3))) - lval mapAndMap: R|kotlin/collections/Map| = R|kotlin/collections/mapOf|(String(-).R|kotlin/to|(Int(4))).R|kotlin/collections/plus|(R|kotlin/collections/mapOf|(String(_).R|kotlin/to|(Int(5)))) + lval x: R|kotlin/Int| = D|Int(1)|.R|kotlin/Int.plus|(Int(2)) + lval y: R|kotlin/Double| = D|Double(3.0)|.R|kotlin/Double.plus|(Double(4.0)) + lval z: R|kotlin/Double| = D|Int(5)|.R|kotlin/Int.plus|(Double(6.0)) + lval w: R|kotlin/Double| = D|Double(7.0)|.R|kotlin/Double.plus|(Int(8)) + lval c: R|kotlin/Char| = D|Char(a)|.R|kotlin/Char.plus|(Int(1)) + lval s: R|kotlin/String| = D|String(.)|.R|kotlin/String.plus|(String(..)) + lval ss: R|kotlin/String| = D|String()|.R|kotlin/String.plus|(Int(1)) + lval list: R|kotlin/collections/List| = E|R|kotlin/collections/listOf|(Int(1), Int(2), Int(3))|.R|kotlin/collections/plus|(Int(4)) + lval listAndList: R|kotlin/collections/List| = E|R|kotlin/collections/listOf|(Int(4), Int(5), Int(6))|.R|kotlin/collections/plus|(R|kotlin/collections/listOf|(Int(7), Int(8))) + lval mutableList: R|kotlin/collections/List| = E|R|kotlin/collections/mutableListOf|(Int(9), Int(10))|.R|kotlin/collections/plus|(R|kotlin/collections/listOf|(Int(11), Int(12), Int(13))) + lval setAndList: R|kotlin/collections/Set| = E|R|kotlin/collections/setOf|(Int(0))|.R|kotlin/collections/plus|(R|kotlin/collections/listOf|(Int(1), Int(2))) + lval stringAndList: R|kotlin/String| = D|String()|.R|kotlin/String.plus|(R|kotlin/collections/emptyList|()) + lval map: R|kotlin/collections/Map| = E|R|kotlin/collections/mapOf|(E|String()|.R|kotlin/to|(Int(1)), E|String(.)|.R|kotlin/to|(Int(2)))|.R|kotlin/collections/plus|(E|String(..)|.R|kotlin/to|(Int(3))) + lval mapAndMap: R|kotlin/collections/Map| = E|R|kotlin/collections/mapOf|(E|String(-)|.R|kotlin/to|(Int(4)))|.R|kotlin/collections/plus|(R|kotlin/collections/mapOf|(E|String(_)|.R|kotlin/to|(Int(5)))) } public final fun id(arg: R|T|): R|T| { ^id R|/arg| } public final fun testMap(): R|kotlin/Unit| { - lval first: R|kotlin/collections/List| = R|kotlin/collections/listOf|(Int(1), Int(2), Int(3)).R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { - R|/it|.R|kotlin/Int.times|(Int(2)) + lval first: R|kotlin/collections/List| = E|R|kotlin/collections/listOf|(Int(1), Int(2), Int(3))|.R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { + D|R|/it||.R|kotlin/Int.times|(Int(2)) } ) - lval second: R|kotlin/collections/List| = R|kotlin/intArrayOf|(Int(4), Int(5), Int(6)).R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { - R|/it|.R|kotlin/Int.times|(Int(2)) + lval second: R|kotlin/collections/List| = E|R|kotlin/intArrayOf|(Int(4), Int(5), Int(6))|.R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { + D|R|/it||.R|kotlin/Int.times|(Int(2)) } ) - lval withId: R|kotlin/collections/List| = R|kotlin/collections/listOf|(Int(1), Int(2), Int(3)).R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { + lval withId: R|kotlin/collections/List| = E|R|kotlin/collections/listOf|(Int(1), Int(2), Int(3))|.R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { R|/id|(R|/it|) } ) - lval stringToInt: R|kotlin/collections/List| = R|kotlin/collections/listOf|(String(alpha), String(omega)).R|kotlin/collections/map|( = map@fun (it: R|kotlin/String|): R|kotlin/Int| { - R|/it|.R|kotlin/String.length| + lval stringToInt: R|kotlin/collections/List| = E|R|kotlin/collections/listOf|(String(alpha), String(omega))|.R|kotlin/collections/map|( = map@fun (it: R|kotlin/String|): R|kotlin/Int| { + D|R|/it||.R|kotlin/String.length| } ) lval viaWith: R|kotlin/collections/List| = R|kotlin/with||, R|kotlin/collections/List|>(R|kotlin/collections/listOf|(Int(42)), = with@fun R|kotlin/collections/List|.(it: R|kotlin/collections/List|): R|kotlin/collections/List| { - R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { - R|/it|.R|kotlin/Int.times|(R|/it|) + E|this@R|special/anonymous||.R|kotlin/collections/map|( = map@fun (it: R|kotlin/Int|): R|kotlin/Int| { + D|R|/it||.R|kotlin/Int.times|(R|/it|) } ) } @@ -45,12 +45,12 @@ FILE: topLevelResolve.kt } public final fun testWith(): R|kotlin/Unit| { lval length: R|kotlin/Int| = R|kotlin/with|(String(), = with@fun R|kotlin/String|.(it: R|kotlin/String|): R|kotlin/Int| { - R|kotlin/String.length| + D|this@R|kotlin/String||.R|kotlin/String.length| } ) lval indices: R|kotlin/ranges/IntRange| = R|kotlin/with|(String(), = with@fun R|kotlin/String|.(it: R|kotlin/String|): R|kotlin/ranges/IntRange| { - R|kotlin/text/indices| + E|this@R|special/anonymous||.R|kotlin/text/indices| } ) - lval indicesNoWith: R|kotlin/ranges/IntRange| = String().R|kotlin/text/indices| + lval indicesNoWith: R|kotlin/ranges/IntRange| = E|String()|.R|kotlin/text/indices| } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/typeAliasDeserialization.txt b/compiler/fir/resolve/testData/resolve/stdlib/typeAliasDeserialization.txt index ea126c1c809..92a93bfa3ad 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/typeAliasDeserialization.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/typeAliasDeserialization.txt @@ -1,5 +1,5 @@ FILE: typeAliasDeserialization.kt public final fun main(): R|kotlin/Unit| { lval a: R|java/util/LinkedHashSet| = R|java/util/LinkedHashSet.LinkedHashSet|() - R|/a|.R|FakeOverride|(String()) + D|R|/a||.R|FakeOverride|(String()) } diff --git a/compiler/fir/resolve/testData/resolve/stdlib/unaryOperators.txt b/compiler/fir/resolve/testData/resolve/stdlib/unaryOperators.txt index 0d24e5dd7d4..e232a2c2089 100644 --- a/compiler/fir/resolve/testData/resolve/stdlib/unaryOperators.txt +++ b/compiler/fir/resolve/testData/resolve/stdlib/unaryOperators.txt @@ -12,10 +12,10 @@ FILE: unaryOperators.kt public final fun foo(u: R|U|): R|kotlin/Unit| { lval b: R|kotlin/Boolean| = Boolean(false) lval i: R|kotlin/Int| = Int(10) - lval x: R|kotlin/Int| = R|/i|.R|kotlin/Int.unaryMinus|() - lval y: R|kotlin/Boolean| = R|/b|.R|kotlin/Boolean.not|() - lval z: R|kotlin/Double| = Double(1.0).R|kotlin/Double.unaryMinus|() - lval w: R|kotlin/Int| = R|/i|.R|kotlin/Int.unaryPlus|() - lval g: R|kotlin/Boolean| = R|/u|.R|/U.contains|(String()).R|kotlin/Boolean.not|() + lval x: R|kotlin/Int| = D|R|/i||.R|kotlin/Int.unaryMinus|() + lval y: R|kotlin/Boolean| = D|R|/b||.R|kotlin/Boolean.not|() + lval z: R|kotlin/Double| = D|Double(1.0)|.R|kotlin/Double.unaryMinus|() + lval w: R|kotlin/Int| = D|R|/i||.R|kotlin/Int.unaryPlus|() + lval g: R|kotlin/Boolean| = D|D|R|/u||.R|/U.contains|(String())|.R|kotlin/Boolean.not|() lval f: R|kotlin/Boolean| = (String() !is R|kotlin/Boolean|) } diff --git a/compiler/fir/resolve/testData/resolve/typeAliasWithTypeArguments.txt b/compiler/fir/resolve/testData/resolve/typeAliasWithTypeArguments.txt index 0e9bae266bf..9e4feb6a3fd 100644 --- a/compiler/fir/resolve/testData/resolve/typeAliasWithTypeArguments.txt +++ b/compiler/fir/resolve/testData/resolve/typeAliasWithTypeArguments.txt @@ -22,31 +22,31 @@ FILE: typeAliasWithTypeArguments.kt public final typealias Inv2 = R|Inv| public final typealias Inv3 = R|Inv| public final fun testBase(inv: R|Inv|): R|kotlin/Unit| { - R|/inv|.R|FakeOverride|() - R|/inv|.R|FakeOverride|() + D|R|/inv||.R|FakeOverride|() + D|R|/inv||.R|FakeOverride|() } public final fun test_0(inv: R|Inv0|): R|kotlin/Unit| { - R|/inv|.R|FakeOverride|().R|/A.foo|() - R|/inv|.R|FakeOverride|().R|/B.bar|() + D|D|R|/inv||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/inv||.R|FakeOverride|()|.R|/B.bar|() } public final fun test_1(inv: R|Inv1|): R|kotlin/Unit| { - R|/inv|.R|FakeOverride|().R|/A.foo|() - R|/inv|.R|FakeOverride|().R|/B.bar|() + D|D|R|/inv||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/inv||.R|FakeOverride|()|.R|/B.bar|() } public final fun test_2(inv: R|Inv2|): R|kotlin/Unit| { - R|/inv|.R|FakeOverride|().R|/A.foo|() - R|/inv|.R|FakeOverride|().R|/B.bar|() + D|D|R|/inv||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/inv||.R|FakeOverride|()|.R|/B.bar|() } public final fun test_3(inv: R|Inv3|): R|kotlin/Unit| { - R|/inv|.R|FakeOverride|().R|/A.foo|() - R|/inv|.R|FakeOverride|().#() - R|/inv|.R|FakeOverride|().R|/C.baz|() + D|D|R|/inv||.R|FakeOverride|()|.R|/A.foo|() + D|R|/inv||.R|FakeOverride|().#() + D|D|R|/inv||.R|FakeOverride|()|.R|/C.baz|() } public final typealias Inv02 = R|Inv, C1>| public final fun test_4(inv: R|Inv02|): R|kotlin/Unit| { - R|/inv|.R|FakeOverride|>|().R|FakeOverride|().R|/A.foo|() - R|/inv|.R|FakeOverride|>|().R|FakeOverride|().R|/B.bar|() - R|/inv|.R|FakeOverride|().R|/C.baz|() + D|D|D|R|/inv||.R|FakeOverride|>|()|.R|FakeOverride|()|.R|/A.foo|() + D|D|D|R|/inv||.R|FakeOverride|>|()|.R|FakeOverride|()|.R|/B.bar|() + D|D|R|/inv||.R|FakeOverride|()|.R|/C.baz|() } public abstract interface In : R|kotlin/Any| { public abstract fun take(x: R|T|): R|kotlin/Unit| @@ -66,20 +66,20 @@ FILE: typeAliasWithTypeArguments.kt public final typealias Out1 = R|Out| public final typealias Invariant1 = R|Invariant| public final fun test_5(a: R|A|, in1: R|In1|, in2: R|In1|, in3: R|In1|): R|kotlin/Unit| { - R|/in1|.R|FakeOverride|(R|/a|) - R|/in2|.R|FakeOverride|(R|/a|) - R|/in3|.R|FakeOverride|(R|/a|) + D|R|/in1||.R|FakeOverride|(R|/a|) + D|R|/in2||.R|FakeOverride|(R|/a|) + D|R|/in3||.R|FakeOverride|(R|/a|) } public final fun test_6(a: R|A|, out1: R|Out1|, out2: R|Out1|, out3: R|Out1|): R|kotlin/Unit| { - R|/out1|.R|FakeOverride|().R|/A.foo|() - R|/out2|.R|FakeOverride|().R|/A.foo|() - R|/out3|.R|FakeOverride|().R|/A.foo|() + D|D|R|/out1||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/out2||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/out3||.R|FakeOverride|()|.R|/A.foo|() } public final fun test_7(a: R|A|, inv1: R|Invariant1|, inv2: R|Invariant1|, inv3: R|Invariant1|): R|kotlin/Unit| { - R|/inv1|.R|FakeOverride|().R|/A.foo|() - R|/inv2|.R|FakeOverride|().R|/A.foo|() - R|/inv3|.R|FakeOverride|().R|/A.foo|() - R|/inv1|.R|FakeOverride|(R|/a|) - R|/inv2|.R|FakeOverride|(R|/a|) - R|/inv3|.R|FakeOverride|(R|/a|) + D|D|R|/inv1||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/inv2||.R|FakeOverride|()|.R|/A.foo|() + D|D|R|/inv3||.R|FakeOverride|()|.R|/A.foo|() + D|R|/inv1||.R|FakeOverride|(R|/a|) + D|R|/inv2||.R|FakeOverride|(R|/a|) + D|R|/inv3||.R|FakeOverride|(R|/a|) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt index 3b0feeb52ba..e367da785fd 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt @@ -20,6 +20,10 @@ interface FirQualifiedAccess : FirResolvable { fun transformCalleeReference(transformer: FirTransformer, data: D): FirQualifiedAccess + fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess + + fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitQualifiedAccess(this, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt index 9fc92cbecbd..448aebd4fbb 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt @@ -27,6 +27,14 @@ class FirComponentCallImpl( return this } + override fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess { + return this + } + + override fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess { + return this + } + override var calleeReference: FirNamedReference = FirSimpleNamedReference(psi, Name.identifier("component$componentIndex")) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt index 8187edbefe2..0083fef9fa0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt @@ -42,6 +42,14 @@ class FirDelegatedConstructorCallImpl( return this } + override fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess { + return this + } + + override fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess { + return this + } + override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(psi) override fun replaceTypeRef(newTypeRef: FirTypeRef) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirModifiableQualifiedAccess.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirModifiableQualifiedAccess.kt index 315c9f06f5c..ab3dfc197b1 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirModifiableQualifiedAccess.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirModifiableQualifiedAccess.kt @@ -20,6 +20,14 @@ interface FirModifiableQualifiedAccess : FirQualifiedAccess { override var explicitReceiver: FirExpression? + override var dispatchReceiver: FirExpression + get() = super.dispatchReceiver + set(_) {} + + override var extensionReceiver: FirExpression + get() = super.extensionReceiver + set(_) {} + override fun transformCalleeReference(transformer: FirTransformer, data: D): FirQualifiedAccess { calleeReference = calleeReference.transformSingle(transformer, data) return this @@ -29,4 +37,14 @@ interface FirModifiableQualifiedAccess : FirQualifiedAccess { explicitReceiver = explicitReceiver?.transformSingle(transformer, data) return this } + + override fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess { + dispatchReceiver = dispatchReceiver.transformSingle(transformer, data) + return this + } + + override fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirQualifiedAccess { + extensionReceiver = extensionReceiver.transformSingle(transformer, data) + return this + } } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/FirImplicitThisReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/FirImplicitThisReference.kt new file mode 100644 index 00000000000..297dc3fae28 --- /dev/null +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/FirImplicitThisReference.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.references + +import org.jetbrains.kotlin.fir.FirAbstractElement +import org.jetbrains.kotlin.fir.FirThisReference +import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol + +class FirImplicitThisReference(override val boundSymbol: AbstractFirBasedSymbol<*>) : FirAbstractElement(null), FirThisReference { + override val labelName: String? + get() = null +} \ No newline at end of file diff --git a/idea/testData/fir/lazyResolve/elvis/results.txt b/idea/testData/fir/lazyResolve/elvis/results.txt index 35e0a3c3fc0..abf2205fd79 100644 --- a/idea/testData/fir/lazyResolve/elvis/results.txt +++ b/idea/testData/fir/lazyResolve/elvis/results.txt @@ -1 +1 @@ -R|elvis/WithElvis.value| \ No newline at end of file +D|this@R|elvis/WithElvis||.R|elvis/WithElvis.value| \ No newline at end of file diff --git a/idea/testData/fir/lazyResolve/inInit/results.txt b/idea/testData/fir/lazyResolve/inInit/results.txt index 06e6c466423..19cb1e2fa9f 100644 --- a/idea/testData/fir/lazyResolve/inInit/results.txt +++ b/idea/testData/fir/lazyResolve/inInit/results.txt @@ -1 +1 @@ -R|/Foo.x| = Int(42) +D|this@R|/Foo||.R|/Foo.x| = Int(42) \ No newline at end of file diff --git a/idea/testData/fir/lazyResolve/inSecondary/results.txt b/idea/testData/fir/lazyResolve/inSecondary/results.txt index 06e6c466423..19cb1e2fa9f 100644 --- a/idea/testData/fir/lazyResolve/inSecondary/results.txt +++ b/idea/testData/fir/lazyResolve/inSecondary/results.txt @@ -1 +1 @@ -R|/Foo.x| = Int(42) +D|this@R|/Foo||.R|/Foo.x| = Int(42) \ No newline at end of file diff --git a/idea/testData/fir/lazyResolve/simple/main.txt b/idea/testData/fir/lazyResolve/simple/main.txt index bb71e2d4252..1d42d148b18 100644 --- a/idea/testData/fir/lazyResolve/simple/main.txt +++ b/idea/testData/fir/lazyResolve/simple/main.txt @@ -8,5 +8,5 @@ FILE: main.kt lval y: = Double(2.0) } public final fun bar(x: R|kotlin/Int|, y: R|kotlin/Int|): R|kotlin/Int| { - ^bar R|/x|.R|kotlin/Int.plus|(R|/y|) + ^bar D|R|/x||.R|kotlin/Int.plus|(R|/y|) } diff --git a/idea/testData/fir/multiModule/basic/m2_java_dep(m1-java)/user.txt b/idea/testData/fir/multiModule/basic/m2_java_dep(m1-java)/user.txt index f2029ad2d37..99b42a15e7b 100644 --- a/idea/testData/fir/multiModule/basic/m2_java_dep(m1-java)/user.txt +++ b/idea/testData/fir/multiModule/basic/m2_java_dep(m1-java)/user.txt @@ -1,4 +1,4 @@ FILE: user.kt public final fun foo(hello: R|hello/Hello|): R|kotlin/String| { - ^foo R|/hello|.R|hello/Hello.msg| + ^foo D|R|/hello||.R|hello/Hello.msg| } diff --git a/idea/testData/fir/multiModule/basicWithAnnotatedJava/jvm/jvm.txt b/idea/testData/fir/multiModule/basicWithAnnotatedJava/jvm/jvm.txt index d7d430978e7..c9565640dd9 100644 --- a/idea/testData/fir/multiModule/basicWithAnnotatedJava/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/basicWithAnnotatedJava/jvm/jvm.txt @@ -5,8 +5,8 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - lval x: R|kotlin/String| = R|/Annotated.foo|(String(123)) - lval y: R|kotlin/String| = R|/Annotated.foo|(Null(null)) + lval x: R|kotlin/String| = D|this@R|/Annotated||.R|/Annotated.foo|(String(123)) + lval y: R|kotlin/String| = D|this@R|/Annotated||.R|/Annotated.foo|(Null(null)) } } diff --git a/idea/testData/fir/multiModule/basicWithAnnotatedOverriddenJava/jvm/jvm.txt b/idea/testData/fir/multiModule/basicWithAnnotatedOverriddenJava/jvm/jvm.txt index db2048caa2c..408f1eb0ea2 100644 --- a/idea/testData/fir/multiModule/basicWithAnnotatedOverriddenJava/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/basicWithAnnotatedOverriddenJava/jvm/jvm.txt @@ -5,8 +5,8 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - lval x: R|kotlin/String| = R|/AnnotatedDerived.foo|(String(123)) - lval y: R|kotlin/String| = R|/AnnotatedDerived.foo|(Null(null)) + lval x: R|kotlin/String| = D|this@R|/AnnotatedDerived||.R|/AnnotatedDerived.foo|(String(123)) + lval y: R|kotlin/String| = D|this@R|/AnnotatedDerived||.R|/AnnotatedDerived.foo|(Null(null)) } } diff --git a/idea/testData/fir/multiModule/basicWithJavaFakeOverride/jvm/simpleFakeOverride.txt b/idea/testData/fir/multiModule/basicWithJavaFakeOverride/jvm/simpleFakeOverride.txt index 76e8c3f9ee2..4aebf3a1446 100644 --- a/idea/testData/fir/multiModule/basicWithJavaFakeOverride/jvm/simpleFakeOverride.txt +++ b/idea/testData/fir/multiModule/basicWithJavaFakeOverride/jvm/simpleFakeOverride.txt @@ -11,7 +11,7 @@ FILE: simpleFakeOverride.kt } public final fun test(): R|kotlin/Unit| { - R|FakeOverride!|>|(R|/Some.Some|()) + D|this@R|/A||.R|FakeOverride!|>|(R|/Some.Some|()) } } diff --git a/idea/testData/fir/multiModule/basicWithPrimitiveJava/jvm/jvm.txt b/idea/testData/fir/multiModule/basicWithPrimitiveJava/jvm/jvm.txt index 2c5769218f9..077112f994a 100644 --- a/idea/testData/fir/multiModule/basicWithPrimitiveJava/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/basicWithPrimitiveJava/jvm/jvm.txt @@ -5,9 +5,9 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - lval res1: R|kotlin/Boolean| = R|/Some.foo|(Int(1)) - lval res2: R|kotlin/Boolean| = R|/Some.foo|(Int(1).R|kotlin/Int.unaryMinus|()) - lval res3: R|kotlin/Array!>| = R|/Some.bar|(R|kotlin/intArrayOf|(Int(0), Int(2), Int(2).R|kotlin/Int.unaryMinus|())) + lval res1: R|kotlin/Boolean| = D|this@R|/Some||.R|/Some.foo|(Int(1)) + lval res2: R|kotlin/Boolean| = D|this@R|/Some||.R|/Some.foo|(D|Int(1)|.R|kotlin/Int.unaryMinus|()) + lval res3: R|kotlin/Array!>| = D|this@R|/Some||.R|/Some.bar|(R|kotlin/intArrayOf|(Int(0), Int(2), D|Int(2)|.R|kotlin/Int.unaryMinus|())) } } diff --git a/idea/testData/fir/multiModule/javaGetPrefixConflict/jvm/Test.txt b/idea/testData/fir/multiModule/javaGetPrefixConflict/jvm/Test.txt index 3ed448a15ad..3e33aab0af8 100644 --- a/idea/testData/fir/multiModule/javaGetPrefixConflict/jvm/Test.txt +++ b/idea/testData/fir/multiModule/javaGetPrefixConflict/jvm/Test.txt @@ -1,8 +1,8 @@ FILE: Test.kt public final fun test(): R|kotlin/Unit| { lval jc: R|JavaClass| = R|/JavaClass.JavaClass|() - lval result: R|ft!| = R|/jc|.R|/JavaClass.text| + lval result: R|ft!| = D|R|/jc||.R|/JavaClass.text| } public final fun otherTest(jc: R|JavaClass|): R|kotlin/Unit| { - lval result: R|ft!| = R|/jc|.R|/JavaClass.text| + lval result: R|ft!| = D|R|/jc||.R|/JavaClass.text| } diff --git a/idea/testData/fir/multiModule/javaInheritsKotlinDerived/jvm/Test.txt b/idea/testData/fir/multiModule/javaInheritsKotlinDerived/jvm/Test.txt index 33d09290429..825481cbd4c 100644 --- a/idea/testData/fir/multiModule/javaInheritsKotlinDerived/jvm/Test.txt +++ b/idea/testData/fir/multiModule/javaInheritsKotlinDerived/jvm/Test.txt @@ -1,5 +1,5 @@ FILE: Test.kt public final fun test(): R|kotlin/Unit| { lval jc: R|JavaClass| = R|/JavaClass.JavaClass|() - lval result: R|kotlin/String| = R|/jc|.R|/Derived.some| + lval result: R|kotlin/String| = D|R|/jc||.R|/Derived.some| } diff --git a/idea/testData/fir/multiModule/javaInheritsKotlinExtension/jvm/Test.txt b/idea/testData/fir/multiModule/javaInheritsKotlinExtension/jvm/Test.txt index 142752655d9..120f2209129 100644 --- a/idea/testData/fir/multiModule/javaInheritsKotlinExtension/jvm/Test.txt +++ b/idea/testData/fir/multiModule/javaInheritsKotlinExtension/jvm/Test.txt @@ -5,7 +5,7 @@ FILE: Test.kt } public final fun test(): R|kotlin/Unit| { - R|/Inheritor.foo|(String(abc), Int(456)) + D|this@R|/Inheritor||E|this@R|/Tester||.R|/Inheritor.foo|(String(abc), Int(456)) } } diff --git a/idea/testData/fir/multiModule/javaSyntheticProperty/jvm/Test.txt b/idea/testData/fir/multiModule/javaSyntheticProperty/jvm/Test.txt index a1567b6ddae..263e27193a6 100644 --- a/idea/testData/fir/multiModule/javaSyntheticProperty/jvm/Test.txt +++ b/idea/testData/fir/multiModule/javaSyntheticProperty/jvm/Test.txt @@ -1,3 +1,3 @@ FILE: Test.kt - public final val x: R|ft!| = R|/JavaClass.JavaClass|().R|/JavaClass.foo| + public final val x: R|ft!| = D|R|/JavaClass.JavaClass|()|.R|/JavaClass.foo| public get(): R|ft!| diff --git a/idea/testData/fir/multiModule/mppFakeOverrides/common/common.txt b/idea/testData/fir/multiModule/mppFakeOverrides/common/common.txt index 33d7e987aa5..7db3620a1e4 100644 --- a/idea/testData/fir/multiModule/mppFakeOverrides/common/common.txt +++ b/idea/testData/fir/multiModule/mppFakeOverrides/common/common.txt @@ -23,7 +23,7 @@ FILE: common.kt } public open fun baz(arg: R|kotlin/CharSequence|): R|kotlin/String| { - ^baz R|/arg|.R|kotlin/Any.toString|() + ^baz D|R|/arg||.R|kotlin/Any.toString|() } } diff --git a/idea/testData/fir/multiModule/mppFakeOverrides/jvm/jvm.txt b/idea/testData/fir/multiModule/mppFakeOverrides/jvm/jvm.txt index 6fc075da55a..7d4c9081a08 100644 --- a/idea/testData/fir/multiModule/mppFakeOverrides/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/mppFakeOverrides/jvm/jvm.txt @@ -22,9 +22,9 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - R|FakeOverride|(String()) - R|/C.bar|(String()) - R|FakeOverride|(String()) + D|this@R|/A||.R|FakeOverride|(String()) + D|this@R|/C||.R|/C.bar|(String()) + D|this@R|/A||.R|FakeOverride|(String()) } } diff --git a/idea/testData/fir/multiModule/mppMemberType/jvm/jvm.txt b/idea/testData/fir/multiModule/mppMemberType/jvm/jvm.txt index de31bcd14d1..a9696fd98f5 100644 --- a/idea/testData/fir/multiModule/mppMemberType/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/mppMemberType/jvm/jvm.txt @@ -18,14 +18,14 @@ FILE: jvm.kt } public final fun useMember(): R|kotlin/Unit| { - R|/MyList.get|(Int(1)) - R|/MyList.set|(Int(2), Int(3)) + D|this@R|/MyList||.R|/MyList.get|(Int(1)) + D|this@R|/MyList||.R|/MyList.set|(Int(2), Int(3)) } } public final fun useList(list: R|MyList|): R|kotlin/Unit| { - R|/list|.R|/MyList.get|(Int(1)) - R|/list|.R|/MyList.set|(Int(2), Int(3)) + D|R|/list||.R|/MyList.get|(Int(1)) + D|R|/list||.R|/MyList.set|(Int(2), Int(3)) } public final class DerivedWrapper : R|Wrapper| { public constructor(): R|DerivedWrapper| { @@ -33,8 +33,8 @@ FILE: jvm.kt } public final fun use(): R|kotlin/Unit| { - R|/Wrapper.list|.R|/MyList.get|(Int(1)) - R|/Wrapper.list|.R|/MyList.set|(Int(2), Int(3)) + D|D|this@R|/Wrapper||.R|/Wrapper.list||.R|/MyList.get|(Int(1)) + D|D|this@R|/Wrapper||.R|/Wrapper.list||.R|/MyList.set|(Int(2), Int(3)) } } diff --git a/idea/testData/fir/multiModule/mppMembers/jvm/jvm.txt b/idea/testData/fir/multiModule/mppMembers/jvm/jvm.txt index 6ea8f6aa89a..9a069090de8 100644 --- a/idea/testData/fir/multiModule/mppMembers/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/mppMembers/jvm/jvm.txt @@ -17,8 +17,8 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - R|/A.foo|() - R|/A.bar|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/A||.R|/A.bar|() } } @@ -28,8 +28,8 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - R|/A.foo|() - R|/A.bar|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/A||.R|/A.bar|() } } diff --git a/idea/testData/fir/multiModule/mppSuperTypes/jvm/jvm.txt b/idea/testData/fir/multiModule/mppSuperTypes/jvm/jvm.txt index 0db241de3d4..1653f4fb4d0 100644 --- a/idea/testData/fir/multiModule/mppSuperTypes/jvm/jvm.txt +++ b/idea/testData/fir/multiModule/mppSuperTypes/jvm/jvm.txt @@ -28,9 +28,9 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - R|/A.foo|() - R|/X.bar|() - R|/Y.baz|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/X||.R|/X.bar|() + D|this@R|/Y||.R|/Y.baz|() } } @@ -40,9 +40,9 @@ FILE: jvm.kt } public final fun test(): R|kotlin/Unit| { - R|/A.foo|() - R|/X.bar|() - R|/Y.baz|() + D|this@R|/A||.R|/A.foo|() + D|this@R|/X||.R|/X.bar|() + D|this@R|/Y||.R|/Y.baz|() } } diff --git a/idea/testData/fir/multiModule/overrideWithJava/jvm/B.txt b/idea/testData/fir/multiModule/overrideWithJava/jvm/B.txt index 38a50097d09..0f8ca747819 100644 --- a/idea/testData/fir/multiModule/overrideWithJava/jvm/B.txt +++ b/idea/testData/fir/multiModule/overrideWithJava/jvm/B.txt @@ -5,16 +5,16 @@ FILE: B.kt } public final override fun foo(): R|B| { - ^foo this# + ^foo this@R|/B| } public final fun bar(): R|B| { - ^bar this# + ^bar this@R|/B| } public final fun test(): R|kotlin/Unit| { - R|/B.foo|() - R|/B.bar|() + D|this@R|/B||.R|/B.foo|() + D|this@R|/B||.R|/B.bar|() } }