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
This commit is contained in:
Denis Zharkov
2020-09-24 14:29:12 +03:00
parent ff83555729
commit 28c536e511
2 changed files with 8 additions and 3 deletions

View File

@@ -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|<local>/other| is R|LightField<*>|) -> {
R|<local>/other|.R|/LightMember.name|
R|<local>/other|.R|/LightField.name|
}
}

View File

@@ -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)
}