[IR] KotlinLikeDumper: better support for enum and object accesses
This commit is contained in:
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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user