Complex augmented assignment test.

Fix string literal creation for empty string template.
This commit is contained in:
Dmitry Petrov
2016-08-17 12:09:12 +03:00
committed by Dmitry Petrov
parent 64d7a97145
commit c1583c4368
8 changed files with 55 additions and 14 deletions
@@ -145,15 +145,19 @@ class IrStatementGenerator(
}
override fun visitStringTemplateExpression(expression: KtStringTemplateExpression, data: Nothing?): IrStatement {
if (expression.entries.size == 1) {
val entry0 = expression.entries[0]
if (entry0 is KtLiteralStringTemplateEntry) {
return entry0.genExpr()
val entries = expression.entries
when {
entries.size == 1 -> {
val entry0 = entries[0]
if (entry0 is KtLiteralStringTemplateEntry) {
return entry0.genExpr()
}
}
entries.size == 0 -> return IrLiteralExpressionImpl.string(expression.startOffset, expression.endOffset, getInferredTypeWithSmarcastsOrFail(expression), "")
}
val irStringTemplate = IrStringConcatenationExpressionImpl(expression.startOffset, expression.endOffset, getInferredTypeWithSmartcasts(expression))
expression.entries.forEach { it.expression!!.let {
entries.forEach { it.expression!!.let {
irStringTemplate.addArgument(TODO())
} }
return irStringTemplate
@@ -91,7 +91,8 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() {
}
if (treeFiles.isEmpty()) {
treeFiles.add(IrTreeFileLabel(File(dir, testFile.name.replace(".kt", ".txt")), 0))
val file = createExpectedTextFile(testFile, dir, testFile.name.replace(".kt", ".txt"))
treeFiles.add(IrTreeFileLabel(file, 0))
}
return Expectations(regexps, treeFiles)