From 28c536e511ac9d201662912b431efe0f9c48bcdb Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 24 Sep 2020 14:29:12 +0300 Subject: [PATCH] FIR: Add temporary workaround to avoid changes in test data CallableId for intersection overrides has been changed in previous commits and many rendered FIR test data needs to be changed But, we're going to get rid of callableId's/or fix them back for intersection overrides soon --- .../resolve/properties/kotlinOverridesJavaComplex.txt | 4 ++-- .../fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/properties/kotlinOverridesJavaComplex.txt b/compiler/fir/analysis-tests/testData/resolve/properties/kotlinOverridesJavaComplex.txt index 2f3d3dbf770..08d7447a131 100644 --- a/compiler/fir/analysis-tests/testData/resolve/properties/kotlinOverridesJavaComplex.txt +++ b/compiler/fir/analysis-tests/testData/resolve/properties/kotlinOverridesJavaComplex.txt @@ -23,7 +23,7 @@ FILE: Test.kt } public final fun test(): R|kotlin/String| { - ^test this@R|/LightClassWrapper|.R|/Light.typeParameters|.R|/single|() + ^test this@R|/LightClassWrapper|.R|/LightClassWrapper.typeParameters|.R|/single|() } } @@ -47,7 +47,7 @@ FILE: Test.kt public final fun test(other: R|kotlin/Any?|): R|kotlin/Unit| { when () { (R|/other| is R|LightField<*>|) -> { - R|/other|.R|/LightMember.name| + R|/other|.R|/LightField.name| } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 38cf9ff1d09..5f0ad60132c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -955,8 +955,8 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM if (isFakeOverride) { print("FakeOverride<") } - print(symbol.render()) + print(symbol.unwrapIntersectionOverrides().render()) if (resolvedNamedReference is FirResolvedCallableReference) { if (resolvedNamedReference.inferredTypeArguments.isNotEmpty()) { @@ -984,6 +984,11 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM print("|") } + private fun AbstractFirBasedSymbol<*>.unwrapIntersectionOverrides(): AbstractFirBasedSymbol<*> { + if (this is FirCallableSymbol<*> && isIntersectionOverride) return overriddenSymbol!!.unwrapIntersectionOverrides() + return this + } + override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) { visitResolvedNamedReference(resolvedCallableReference) }