FIR: Support callable references partially

^KT-32725 In Progress
This commit is contained in:
Denis Zharkov
2019-10-28 14:47:27 +03:00
parent cdb2bb2b45
commit 006e475a99
25 changed files with 623 additions and 24 deletions
@@ -90,6 +90,16 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
}
}
private fun List<ConeKotlinType>.renderTypesSeparated() {
for ((index, element) in this.withIndex()) {
if (index > 0) {
print(", ")
}
print(element.render())
}
}
private fun List<FirValueParameter>.renderParameters() {
print("(")
renderSeparated()
@@ -806,6 +816,18 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
}
val symbol = resolvedCallableReference.resolvedSymbol
print(symbol.render())
if (resolvedCallableReference is FirResolvedRealCallableReference) {
if (resolvedCallableReference.inferredTypeArguments.isNotEmpty()) {
print("<")
resolvedCallableReference.inferredTypeArguments.renderTypesSeparated()
print(">")
}
}
if (isFakeOverride) {
when (symbol) {
is FirNamedFunctionSymbol -> {
@@ -822,6 +844,10 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print("|")
}
override fun visitResolvedRealCallableReference(resolvedRealCallableReference: FirResolvedRealCallableReference) {
visitResolvedCallableReference(resolvedRealCallableReference)
}
override fun visitThisReference(thisReference: FirThisReference) {
print("this")
val labelName = thisReference.labelName