[IR] KotlinLikeDumper: better support for enum and object accesses

This commit is contained in:
Zalim Bashorov
2020-11-10 19:54:27 +03:00
committed by teamcityserver
parent 635cb44bf3
commit 1fd12b7b8a
@@ -1068,9 +1068,16 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption
spread.expression.accept(this, data)
}
override fun visitDeclarationReference(expression: IrDeclarationReference, data: IrDeclaration?) {
// TODO support
super.visitDeclarationReference(expression, data)
override fun visitGetObjectValue(expression: IrGetObjectValue, data: IrDeclaration?) {
// TODO what if symbol is unbound?
expression.symbol.defaultType.printTypeWithNoIndent()
}
override fun visitGetEnumValue(expression: IrGetEnumValue, data: IrDeclaration?) {
val enumEntry = expression.symbol.owner
p.printWithNoIndent(enumEntry.parentAsClass.name.asString())
p.printWithNoIndent(".")
p.printWithNoIndent(enumEntry.name.asString())
}
override fun visitRawFunctionReference(expression: IrRawFunctionReference, data: IrDeclaration?) {
@@ -1080,11 +1087,6 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption
super.visitRawFunctionReference(expression, data)
}
override fun visitSingletonReference(expression: IrGetSingletonValue, data: IrDeclaration?) {
// TODO check
expression.type.printTypeWithNoIndent()
}
override fun visitGetValue(expression: IrGetValue, data: IrDeclaration?) {
p.printWithNoIndent(expression.symbol.owner.name.asString())
}
@@ -1313,16 +1315,6 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption
super.visitSuspensionPoint(expression, data)
}
override fun visitGetObjectValue(expression: IrGetObjectValue, data: IrDeclaration?) {
// ???
super.visitGetObjectValue(expression, data)
}
override fun visitGetEnumValue(expression: IrGetEnumValue, data: IrDeclaration?) {
// ???
super.visitGetEnumValue(expression, data)
}
override fun visitFunctionReference(expression: IrFunctionReference, data: IrDeclaration?) {
super.visitFunctionReference(expression, data)
}