[FIR2IR] Provide more information for errors inside convertToIrSetCall

This commit is contained in:
Mikhail Glukhikh
2020-11-12 16:56:55 +03:00
committed by teamcityserver
parent 9de244515e
commit 59c86bcdc4
@@ -276,9 +276,11 @@ class CallAndReferenceGenerator(
} }
fun convertToIrSetCall(variableAssignment: FirVariableAssignment, explicitReceiverExpression: IrExpression?): IrExpression { fun convertToIrSetCall(variableAssignment: FirVariableAssignment, explicitReceiverExpression: IrExpression?): IrExpression {
try {
val type = irBuiltIns.unitType val type = irBuiltIns.unitType
val calleeReference = variableAssignment.calleeReference val calleeReference = variableAssignment.calleeReference
val symbol = calleeReference.toSymbolForCall(session, classifierStorage, declarationStorage, conversionScope, preferGetter = false) val symbol =
calleeReference.toSymbolForCall(session, classifierStorage, declarationStorage, conversionScope, preferGetter = false)
val origin = IrStatementOrigin.EQ val origin = IrStatementOrigin.EQ
return variableAssignment.convertWithOffsets { startOffset, endOffset -> return variableAssignment.convertWithOffsets { startOffset, endOffset ->
val assignedValue = visitor.convertToIrExpression(variableAssignment.rValue) val assignedValue = visitor.convertToIrExpression(variableAssignment.rValue)
@@ -339,6 +341,12 @@ class CallAndReferenceGenerator(
else -> generateErrorCallExpression(startOffset, endOffset, calleeReference) else -> generateErrorCallExpression(startOffset, endOffset, calleeReference)
} }
}.applyTypeArguments(variableAssignment).applyReceivers(variableAssignment, explicitReceiverExpression) }.applyTypeArguments(variableAssignment).applyReceivers(variableAssignment, explicitReceiverExpression)
} catch (e: Throwable) {
throw IllegalStateException(
"Error while translating ${variableAssignment.render()} " +
"from file ${conversionScope.containingFileIfAny()?.name ?: "???"} to BE IR", e
)
}
} }
fun convertToIrConstructorCall(annotationCall: FirAnnotationCall): IrExpression { fun convertToIrConstructorCall(annotationCall: FirAnnotationCall): IrExpression {