Raw FIR: introduce string concatenation call

This removes some 'plus' calls to be resolved
This commit is contained in:
Mikhail Glukhikh
2019-04-16 11:29:59 +03:00
parent 8d2acd790d
commit 77e83dd8cf
15 changed files with 107 additions and 26 deletions
@@ -80,6 +80,8 @@ internal class Fir2IrVisitor(
private val booleanType = FirImplicitBooleanTypeRef(session, null).toIrType(session, declarationStorage)
private val stringType = FirImplicitStringTypeRef(session, null).toIrType(session, declarationStorage)
private fun ModuleDescriptor.findPackageFragmentForFile(file: FirFile): PackageFragmentDescriptor =
getPackage(file.packageFqName).fragments.first()
@@ -1070,6 +1072,15 @@ internal class Fir2IrVisitor(
}
}
override fun visitStringConcatenationCall(stringConcatenationCall: FirStringConcatenationCall, data: Any?): IrElement {
return stringConcatenationCall.convertWithOffsets { startOffset, endOffset ->
IrStringConcatenationImpl(
startOffset, endOffset, stringType,
stringConcatenationCall.arguments.map { it.toIrExpression() }
)
}
}
override fun visitTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall, data: Any?): IrElement {
return typeOperatorCall.convertWithOffsets { startOffset, endOffset ->
val irTypeOperand = typeOperatorCall.conversionTypeRef.toIrType(session, declarationStorage)