fix escaping problem in write_literal and print_literal lint

This commit is contained in:
lapla-cogito 2025-01-13 05:31:12 +09:00
parent 716a3a4778
commit 65b95a2cfb
No known key found for this signature in database
GPG key ID: B39C71D9F127FF9F
7 changed files with 137 additions and 3 deletions

View file

@ -522,7 +522,7 @@ fn check_literal(cx: &LateContext<'_>, format_args: &FormatArgs, name: &str) {
let replacement = match (format_string_is_raw, replace_raw) {
(false, false) => Some(replacement),
(false, true) => Some(replacement.replace('"', "\\\"").replace('\\', "\\\\")),
(false, true) => Some(replacement.replace('\\', "\\\\").replace('"', "\\\"")),
(true, false) => match conservative_unescape(&replacement) {
Ok(unescaped) => Some(unescaped),
Err(UnescapeErr::Lint) => None,