Fixed EA-75114

This commit is contained in:
Valentin Kipyatkov
2016-02-04 20:47:32 +03:00
parent c914ca0626
commit 9c426e70e1
4 changed files with 15 additions and 2 deletions
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.idea.inspections.IntentionBasedInspection
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
class ConvertToStringTemplateInspection : IntentionBasedInspection<KtBinaryExpression>(
ConvertToStringTemplateIntention(),
@@ -86,9 +87,9 @@ class ConvertToStringTemplateIntention : SelfTargetingOffsetIndependentIntention
val expressionText = expression.text
return when (expression) {
is KtConstantExpression -> {
val bindingContext = expression.analyze()
val bindingContext = expression.analyze(BodyResolveMode.PARTIAL)
val constant = ConstantExpressionEvaluator.getConstant(expression, bindingContext)
constant?.getValue(bindingContext.getType(expression)!!).toString()
StringUtil.escapeStringCharacters(constant?.getValue(bindingContext.getType(expression)!!).toString())
}
is KtStringTemplateExpression -> {
@@ -0,0 +1,3 @@
fun foo(p1: Int, p2: Int, p3: Int) {
val v = <caret>"a" + p1 + '\n' + p2 + '\r' + p3 + '\t'
}
@@ -0,0 +1,3 @@
fun foo(p1: Int, p2: Int, p3: Int) {
val v = <caret>"a$p1\n$p2\r$p3\t"
}
@@ -4693,6 +4693,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
doTest(fileName);
}
@TestMetadata("specialCharsInCharLiteral.kt")
public void testSpecialCharsInCharLiteral() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertToStringTemplate/specialCharsInCharLiteral.kt");
doTest(fileName);
}
@TestMetadata("tricky.kt")
public void testTricky() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertToStringTemplate/tricky.kt");