scanner: fix interpolation with more embedded string args (#7258)
parent
9c1a5c5117
commit
2a731e1c8e
|
@ -1005,7 +1005,7 @@ fn (mut s Scanner) ident_string() string {
|
|||
is_raw := is_quote && s.pos > 0 && s.text[s.pos - 1] == `r`
|
||||
is_cstr := is_quote && s.pos > 0 && s.text[s.pos - 1] == `c`
|
||||
if is_quote {
|
||||
if s.is_inside_string {
|
||||
if s.is_inside_string || s.is_enclosed_inter || s.is_inter_start {
|
||||
s.inter_quote = q
|
||||
} else {
|
||||
s.quote = q
|
||||
|
|
|
@ -2,6 +2,10 @@ fn show_info(a string) string {
|
|||
return a
|
||||
}
|
||||
|
||||
fn show_more_info(a string, b string) string {
|
||||
return a + b
|
||||
}
|
||||
|
||||
fn test_interpolation_string_args() {
|
||||
assert '${show_info("abc")}' == 'abc'
|
||||
assert '${show_info('abc')}' == 'abc'
|
||||
|
@ -11,4 +15,17 @@ fn test_interpolation_string_args() {
|
|||
|
||||
assert '${"aaa"}' == 'aaa'
|
||||
assert '${'aaa'}' == 'aaa'
|
||||
|
||||
assert '${"aaa" + "bbb"}' == 'aaabbb'
|
||||
assert '${'aaa' + 'bbb'}' == 'aaabbb'
|
||||
assert '${"aaa" + 'bbb'}' == 'aaabbb'
|
||||
assert '${'aaa' + "bbb"}' == 'aaabbb'
|
||||
|
||||
assert '${show_more_info("aaa", "bbb")}' == 'aaabbb'
|
||||
assert '${show_more_info('aaa', 'bbb')}' == 'aaabbb'
|
||||
assert '${show_more_info("aaa", 'bbb')}' == 'aaabbb'
|
||||
assert '${show_more_info('aaa', "bbb")}' == 'aaabbb'
|
||||
|
||||
assert '1_${show_more_info("aaa", "111")} 2_${show_more_info("bbb", "222")}' == '1_aaa111 2_bbb222'
|
||||
assert '1_${show_more_info('aaa', '111')} 2_${show_more_info('bbb', '222')}' == '1_aaa111 2_bbb222'
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue