UAST: correct processing of string literals in string literals (KT-20990)
This commit is contained in:
committed by
xiexed
parent
11f9c055fd
commit
a11cf253df
@@ -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
@@ -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"
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user