From 09cdeb4bc9c9d8ed1cd24eef17799bfc84880792 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 5 May 2022 21:55:18 -0700 Subject: [PATCH] Handle "Show invisible delimeters (within comments)" change in rustc --- src/lib.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 19742dc..5f4da61 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -323,7 +323,17 @@ fn try_expand(input: TokenStream, mode: Macro) -> Result { fn lit_indoc(token: TokenTree, mode: Macro) -> Result { let repr = token.to_string(); - let repr = repr.trim(); + let mut repr = repr.trim(); + + // https://github.com/rust-lang/rust/pull/96682 + let invisible_delimiter_prefix = "/*«*/"; + let invisible_delimiter_suffix = "/*»*/"; + if repr.starts_with(invisible_delimiter_prefix) && repr.ends_with(invisible_delimiter_suffix) { + repr = repr + [invisible_delimiter_prefix.len()..repr.len() - invisible_delimiter_suffix.len()] + .trim(); + } + let is_string = repr.starts_with('"') || repr.starts_with('r'); let is_byte_string = repr.starts_with("b\"") || repr.starts_with("br");