CODEGEN: make TODO more informative
(cherry picked from commit b28a5732bb6c1f278efb48efd08319cc5e4f5e75)
This commit is contained in:
committed by
vvlevchenko
parent
d88ff9ac08
commit
9c9d75f6b8
+10
-10
@@ -106,7 +106,7 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
|
|
||||||
override fun visitLoop(loop: IrLoop) {
|
override fun visitLoop(loop: IrLoop) {
|
||||||
TODO()
|
TODO("${ir2string(loop)}")
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
@@ -361,7 +361,7 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
is IrThrow -> return evaluateThrow (tmpVariableName, value)
|
is IrThrow -> return evaluateThrow (tmpVariableName, value)
|
||||||
null -> return null
|
null -> return null
|
||||||
else -> {
|
else -> {
|
||||||
TODO()
|
TODO("${ir2string(value)}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -418,10 +418,10 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
if (value.descriptor.name.asString() == "<this>") {
|
if (value.descriptor.name.asString() == "<this>") {
|
||||||
return codegen.load(codegen.thisVariable(), tmpVariableName)
|
return codegen.load(codegen.thisVariable(), tmpVariableName)
|
||||||
}
|
}
|
||||||
TODO()
|
TODO("${ir2string(value)}")
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
TODO()
|
TODO("${ir2string(value)}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -450,10 +450,10 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
private fun evaluateTypeOperator(tmpVariableName: String, value: IrTypeOperatorCall): LLVMValueRef? {
|
private fun evaluateTypeOperator(tmpVariableName: String, value: IrTypeOperatorCall): LLVMValueRef? {
|
||||||
when (value.operator) {
|
when (value.operator) {
|
||||||
IrTypeOperator.CAST -> return evaluateCast(tmpVariableName, value)
|
IrTypeOperator.CAST -> return evaluateCast(tmpVariableName, value)
|
||||||
IrTypeOperator.IMPLICIT_CAST -> TODO()
|
IrTypeOperator.IMPLICIT_CAST -> TODO("${ir2string(value)}")
|
||||||
IrTypeOperator.IMPLICIT_NOTNULL -> TODO()
|
IrTypeOperator.IMPLICIT_NOTNULL -> TODO("${ir2string(value)}")
|
||||||
IrTypeOperator.IMPLICIT_COERCION_TO_UNIT -> return evaluateExpression(tmpVariableName, value.argument)
|
IrTypeOperator.IMPLICIT_COERCION_TO_UNIT -> return evaluateExpression(tmpVariableName, value.argument)
|
||||||
IrTypeOperator.SAFE_CAST -> TODO()
|
IrTypeOperator.SAFE_CAST -> TODO("${ir2string(value)}")
|
||||||
IrTypeOperator.INSTANCEOF -> return evaluateInstanceOf(tmpVariableName, value)
|
IrTypeOperator.INSTANCEOF -> return evaluateInstanceOf(tmpVariableName, value)
|
||||||
IrTypeOperator.NOT_INSTANCEOF -> return evaluateNotInstanceOf(tmpVariableName, value)
|
IrTypeOperator.NOT_INSTANCEOF -> return evaluateNotInstanceOf(tmpVariableName, value)
|
||||||
}
|
}
|
||||||
@@ -603,7 +603,7 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
IrConstKind.Float -> return LLVMConstRealOfString(LLVMFloatType(), (value.value as Float).toString())
|
IrConstKind.Float -> return LLVMConstRealOfString(LLVMFloatType(), (value.value as Float).toString())
|
||||||
IrConstKind.Double -> return LLVMConstRealOfString(LLVMDoubleType(), (value.value as Double).toString())
|
IrConstKind.Double -> return LLVMConstRealOfString(LLVMDoubleType(), (value.value as Double).toString())
|
||||||
}
|
}
|
||||||
TODO()
|
TODO("${ir2string(value)}")
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
@@ -642,7 +642,7 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
value is IrDelegatingConstructorCall -> return superCall(tmpVariableName, value.descriptor, args)
|
value is IrDelegatingConstructorCall -> return superCall(tmpVariableName, value.descriptor, args)
|
||||||
value.descriptor is FunctionDescriptor -> return evaluateFunctionCall(tmpVariableName, value as IrCall, args)
|
value.descriptor is FunctionDescriptor -> return evaluateFunctionCall(tmpVariableName, value as IrCall, args)
|
||||||
else -> {
|
else -> {
|
||||||
TODO()
|
TODO("${ir2string(value)}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -801,7 +801,7 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
|||||||
assert(arg0Type == arg1Type || arg0Type.isNullableNothing() || arg1Type.isNullableNothing())
|
assert(arg0Type == arg1Type || arg0Type.isNullableNothing() || arg1Type.isNullableNothing())
|
||||||
|
|
||||||
return when {
|
return when {
|
||||||
KotlinBuiltIns.isPrimitiveType(arg0Type) -> TODO()
|
KotlinBuiltIns.isPrimitiveType(arg0Type) -> TODO("${ir2string(callee)}")
|
||||||
else -> codegen.icmpEq(arg0, arg1, tmpVariableName)
|
else -> codegen.icmpEq(arg0, arg1, tmpVariableName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user