Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/syntax/src/validation.rs')
| -rw-r--r-- | crates/syntax/src/validation.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/syntax/src/validation.rs b/crates/syntax/src/validation.rs index c2c2c82e11..3edca3eb8f 100644 --- a/crates/syntax/src/validation.rs +++ b/crates/syntax/src/validation.rs @@ -119,8 +119,15 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) { text.rfind(end_delimiter).and_then(|end| text.get(prefix_len..end)) } - let token = literal.token(); - let text = token.text(); + let token = literal.value(); + let text; + let text = match &token { + rowan::NodeOrToken::Node(node) => { + text = node.text().to_string(); + &*text + } + rowan::NodeOrToken::Token(token) => token.text(), + }; // FIXME: lift this lambda refactor to `fn` (https://github.com/rust-analyzer/rust-analyzer/pull/2834#discussion_r366199205) let mut push_err = |prefix_len, (off, err): (usize, unescape::EscapeError)| { |