about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPeter Jaszkowiak <p.jaszkow@gmail.com>2024-04-14 17:37:45 -0600
committerPeter Jaszkowiak <p.jaszkow@gmail.com>2024-10-08 18:21:16 -0600
commit321a5db7d4026cf703d6deebc413c855ba133142 (patch)
treef9760cc3beb7c6854859f1298ff0d6e9f85ac127 /src
parent6f4ae0f34503601e54680a137c1db0b81b56cc3d (diff)
downloadrust-321a5db7d4026cf703d6deebc413c855ba133142.tar.gz
rust-321a5db7d4026cf703d6deebc413c855ba133142.zip
Reserve guarded string literals (RFC 3593)
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/highlight.rs1
-rw-r--r--src/tools/rust-analyzer/crates/parser/src/lexed_str.rs6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/librustdoc/html/highlight.rs b/src/librustdoc/html/highlight.rs
index e7ddd4b73b4..b68b7295096 100644
--- a/src/librustdoc/html/highlight.rs
+++ b/src/librustdoc/html/highlight.rs
@@ -845,6 +845,7 @@ impl<'src> Classifier<'src> {
                 // Number literals.
                 LiteralKind::Float { .. } | LiteralKind::Int { .. } => Class::Number,
             },
+            TokenKind::GuardedStrPrefix => return no_highlight(sink),
             TokenKind::Ident | TokenKind::RawIdent if lookahead == Some(TokenKind::Bang) => {
                 self.in_macro = true;
                 sink(Highlight::EnterSpan { class: Class::Macro(self.new_span(before, text)) });
diff --git a/src/tools/rust-analyzer/crates/parser/src/lexed_str.rs b/src/tools/rust-analyzer/crates/parser/src/lexed_str.rs
index dceac815e0b..7ea23b4f752 100644
--- a/src/tools/rust-analyzer/crates/parser/src/lexed_str.rs
+++ b/src/tools/rust-analyzer/crates/parser/src/lexed_str.rs
@@ -187,6 +187,12 @@ impl<'a> Converter<'a> {
                 }
 
                 rustc_lexer::TokenKind::RawIdent => IDENT,
+
+                rustc_lexer::TokenKind::GuardedStrPrefix => {
+                    err = "Invalid string literal (reserved syntax)";
+                    ERROR
+                },
+
                 rustc_lexer::TokenKind::Literal { kind, .. } => {
                     self.extend_literal(token_text.len(), kind);
                     return;