UAST: correct processing of string literals in string literals (KT-20990)

This commit is contained in:
Nicolay Mitropolsky
2017-10-28 20:28:42 +03:00
committed by xiexed
parent 11f9c055fd
commit a11cf253df
4 changed files with 14 additions and 3 deletions
@@ -57,10 +57,10 @@ abstract class KotlinAbstractUElement(private val givenParent: UElement?) : UEle
parent = parent.parent
}
if (parent is KtStringTemplateEntryWithExpression) {
if (parent is KtStringTemplateExpression && parent.entries.size == 1) {
parent = parent.parent
}
if ((parent is KtStringTemplateExpression && parent.entries.size == 1)) {
if (parent is KtStringTemplateEntryWithExpression) {
parent = parent.parent
}
if (parent is KtWhenConditionWithExpression) {
+3 -1
View File
@@ -2,4 +2,6 @@ val foo = "lorem"
val bar = "ipsum"
val baz = "dolor"
val foobarbaz = "$foo $bar $baz"
val foobarbaz = "$foo $bar $baz"
val case4 = "a ${"literal"} z"
+7
View File
@@ -17,7 +17,14 @@ UFile (package = )
USimpleNameReferenceExpression (identifier = bar)
ULiteralExpression (value = " ")
USimpleNameReferenceExpression (identifier = baz)
UField (name = case4)
UAnnotation (fqName = org.jetbrains.annotations.NotNull)
UPolyadicExpression (operator = +)
ULiteralExpression (value = "a ")
ULiteralExpression (value = "literal")
ULiteralExpression (value = " z")
UAnnotationMethod (name = getFoo)
UAnnotationMethod (name = getBar)
UAnnotationMethod (name = getBaz)
UAnnotationMethod (name = getFoobarbaz)
UAnnotationMethod (name = getCase4)
@@ -3,8 +3,10 @@ public final class StringTemplateKt {
private static final var bar: java.lang.String = "ipsum"
private static final var baz: java.lang.String = "dolor"
private static final var foobarbaz: java.lang.String = foo + " " + bar + " " + baz
private static final var case4: java.lang.String = "a " + "literal" + " z"
public static final fun getFoo() : java.lang.String = UastEmptyExpression
public static final fun getBar() : java.lang.String = UastEmptyExpression
public static final fun getBaz() : java.lang.String = UastEmptyExpression
public static final fun getFoobarbaz() : java.lang.String = UastEmptyExpression
public static final fun getCase4() : java.lang.String = UastEmptyExpression
}