From 816e1e711c7d59c2d5e6b1ec42eb94fe4805726e Mon Sep 17 00:00:00 2001 From: harupy Date: Sat, 10 Dec 2022 17:49:57 +0900 Subject: [PATCH] Fix the end location of an implicitly-concatenated string --- ...tpython_parser__string__tests__parse_f_string_concat_1.snap | 2 +- ...tpython_parser__string__tests__parse_f_string_concat_2.snap | 2 +- ...tpython_parser__string__tests__parse_f_string_concat_3.snap | 2 +- ...ython_parser__string__tests__parse_u_f_string_concat_1.snap | 2 +- ...ython_parser__string__tests__parse_u_f_string_concat_2.snap | 2 +- parser/src/string.rs | 3 ++- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_1.snap b/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_1.snap index f57f903bc2..9b1f5668d7 100644 --- a/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_1.snap +++ b/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_1.snap @@ -24,7 +24,7 @@ expression: parse_ast end_location: Some( Location { row: 1, - column: 8, + column: 17, }, ), custom: (), diff --git a/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_2.snap b/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_2.snap index f57f903bc2..9b1f5668d7 100644 --- a/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_2.snap +++ b/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_2.snap @@ -24,7 +24,7 @@ expression: parse_ast end_location: Some( Location { row: 1, - column: 8, + column: 17, }, ), custom: (), diff --git a/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_3.snap b/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_3.snap index 68582508b0..0d7ebcab71 100644 --- a/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_3.snap +++ b/parser/src/snapshots/rustpython_parser__string__tests__parse_f_string_concat_3.snap @@ -24,7 +24,7 @@ expression: parse_ast end_location: Some( Location { row: 1, - column: 8, + column: 22, }, ), custom: (), diff --git a/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_1.snap b/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_1.snap index d9d57865ed..2449dff357 100644 --- a/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_1.snap +++ b/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_1.snap @@ -24,7 +24,7 @@ expression: parse_ast end_location: Some( Location { row: 1, - column: 9, + column: 18, }, ), custom: (), diff --git a/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_2.snap b/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_2.snap index a9f10f062c..f56ae0f2d5 100644 --- a/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_2.snap +++ b/parser/src/snapshots/rustpython_parser__string__tests__parse_u_f_string_concat_2.snap @@ -24,7 +24,7 @@ expression: parse_ast end_location: Some( Location { row: 1, - column: 9, + column: 22, }, ), custom: (), diff --git a/parser/src/string.rs b/parser/src/string.rs index 838da94c7e..5a8e3e6eae 100644 --- a/parser/src/string.rs +++ b/parser/src/string.rs @@ -12,6 +12,7 @@ pub fn parse_strings( // Preserve the initial location and kind. let initial_start = values[0].0; let initial_end = values[0].2; + let last_end = values.last().unwrap().2; let initial_kind = (values[0].1 .1 == StringKind::U).then(|| "u".to_owned()); // Optimization: fast-track the common case of a single string. @@ -84,7 +85,7 @@ pub fn parse_strings( Ok(if has_fstring { Expr::new( initial_start, - initial_end, + last_end, ExprKind::JoinedStr { values: deduped }, ) } else {