Throw a clearer error on unexpected IR nodes in expressions

This commit is contained in:
pyos
2019-03-27 15:17:40 +01:00
committed by Mikhael Bogdanov
parent c3a74ded0e
commit 05e09df683
@@ -536,14 +536,6 @@ class ExpressionCodegen(
}
}
override fun visitGetObjectValue(expression: IrGetObjectValue, data: BlockInfo): StackValue {
throw AssertionError("Instruction should've been lowered before code generation: ${expression.render()}")
}
override fun visitGetEnumValue(expression: IrGetEnumValue, data: BlockInfo): StackValue {
throw AssertionError("Instruction should've been lowered before code generation: ${expression.render()}")
}
override fun visitSetVariable(expression: IrSetVariable, data: BlockInfo): StackValue {
expression.markLineNumber(startOffset = true)
expression.value.markLineNumber(startOffset = true)
@@ -568,7 +560,10 @@ class ExpressionCodegen(
}
override fun visitElement(element: IrElement, data: BlockInfo): StackValue {
TODO("not implemented for $element") //To change body of created functions use File | Settings | File Templates.
throw AssertionError(
"Unexpected IR element found during code generation. Either code generation for it " +
"is not implemented, or it should have been lowered: ${element.render()}"
)
}
override fun visitClass(declaration: IrClass, data: BlockInfo): StackValue {