Support quotes at the end of a raw string
Fix for KT-4650 Can't use double quote at the end of the raw string #KT-4650 Fixed
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
class P(val actual: String, val expected: String)
|
||||
fun array(vararg s: P) = s
|
||||
|
||||
fun box() : String {
|
||||
val data = array(
|
||||
P("""""", ""),
|
||||
P(""""""", "\""),
|
||||
P("""""""", "\"\""),
|
||||
P(""""""""", "\"\"\""),
|
||||
P("""""""""", "\"\"\"\""),
|
||||
P("""" """, "\" "),
|
||||
P(""""" """, "\"\" "),
|
||||
P(""" """", " \""),
|
||||
P(""" """"", " \"\""),
|
||||
P(""" """""", " \"\"\""),
|
||||
P(""" """"""", " \"\"\"\""),
|
||||
P(""" """""""", " \"\"\"\"\""),
|
||||
P("""" """", "\" \""),
|
||||
P(""""" """"", "\"\" \"\"")
|
||||
)
|
||||
|
||||
for (i in 0..data.size-1) {
|
||||
val p = data[i]
|
||||
if (p.actual != p.expected) return "Fail at #$i. actual='${p.actual}', expected='${p.expected}'"
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
fun foo() {
|
||||
""""""
|
||||
"""""""
|
||||
""""""""
|
||||
"""""""""
|
||||
""""""""""
|
||||
|
||||
"""" """
|
||||
""""" """
|
||||
|
||||
""" """"
|
||||
""" """""
|
||||
""" """"""
|
||||
""" """""""
|
||||
""" """"""""
|
||||
|
||||
"""" """"
|
||||
""""" """""
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
JetFile: RawStringsWithManyQuotes.kt
|
||||
PACKAGE_DIRECTIVE
|
||||
<empty list>
|
||||
FUN
|
||||
PsiElement(fun)('fun')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(IDENTIFIER)('foo')
|
||||
VALUE_PARAMETER_LIST
|
||||
PsiElement(LPAR)('(')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiWhiteSpace(' ')
|
||||
BLOCK
|
||||
PsiElement(LBRACE)('{')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('""""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('""""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"""""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n ')
|
||||
STRING_TEMPLATE
|
||||
PsiElement(OPEN_QUOTE)('"""')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('"')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)(' ')
|
||||
LITERAL_STRING_TEMPLATE_ENTRY
|
||||
PsiElement(REGULAR_STRING_PART)('""')
|
||||
PsiElement(CLOSING_QUOTE)('"""')
|
||||
PsiWhiteSpace('\n')
|
||||
PsiElement(RBRACE)('}')
|
||||
Reference in New Issue
Block a user