diff options
author | Aleksey Kladov <[email protected]> | 2018-12-27 11:42:46 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-12-27 11:42:46 +0000 |
commit | 73ded3c63ca2522b7bb6ca8eb7834c5adc1a3511 (patch) | |
tree | 521f3b0fa02e32b0b2a6e9a9d1370845d922657f /crates/ra_syntax/src/validation/string.rs | |
parent | dbf03b674e7e1a49d9b32ec5ed656df2aedd3ed3 (diff) |
dedupe literal parsers
Diffstat (limited to 'crates/ra_syntax/src/validation/string.rs')
-rw-r--r-- | crates/ra_syntax/src/validation/string.rs | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/crates/ra_syntax/src/validation/string.rs b/crates/ra_syntax/src/validation/string.rs index 089879d15..456180ab6 100644 --- a/crates/ra_syntax/src/validation/string.rs +++ b/crates/ra_syntax/src/validation/string.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use crate::{ | 1 | use crate::{ |
2 | ast::{self, AstNode}, | 2 | ast::{self, AstNode}, |
3 | string_lexing::{self, StringComponentKind}, | 3 | string_lexing, |
4 | yellow::{ | 4 | yellow::{ |
5 | SyntaxError, | 5 | SyntaxError, |
6 | SyntaxErrorKind::*, | 6 | SyntaxErrorKind::*, |
@@ -16,16 +16,11 @@ pub(crate) fn validate_string_node(node: ast::String, errors: &mut Vec<SyntaxErr | |||
16 | for component in &mut components { | 16 | for component in &mut components { |
17 | let range = component.range + literal_range.start(); | 17 | let range = component.range + literal_range.start(); |
18 | 18 | ||
19 | match component.kind { | 19 | // Chars must escape \t, \n and \r codepoints, but strings don't |
20 | StringComponentKind::Char(kind) => { | 20 | let text = &literal_text[component.range]; |
21 | // Chars must escape \t, \n and \r codepoints, but strings don't | 21 | match text { |
22 | let text = &literal_text[component.range]; | 22 | "\t" | "\n" | "\r" => { /* always valid */ } |
23 | match text { | 23 | _ => char::validate_char_component(text, component.kind, range, errors), |
24 | "\t" | "\n" | "\r" => { /* always valid */ } | ||
25 | _ => char::validate_char_component(text, kind, range, errors), | ||
26 | } | ||
27 | } | ||
28 | StringComponentKind::IgnoreNewline => { /* always valid */ } | ||
29 | } | 24 | } |
30 | } | 25 | } |
31 | 26 | ||