1
Fork 0

Auto merge of #116124 - WaffleLapkin:fix-proc-macro-literal-to-string, r=compiler-errors

Properly print cstr literals in `proc_macro::Literal::to_string`

Previously we printed the contents of the string, rather than the actual string literal (e.g. `the c string` instead of `c"the c string"`).

Fixes #112820
cc #105723
This commit is contained in:
bors 2023-09-26 03:39:25 +00:00
commit a6dce3bac5
4 changed files with 158 additions and 1 deletions

View file

@ -1418,7 +1418,15 @@ impl Literal {
let hashes = get_hashes_str(n);
f(&["br", hashes, "\"", symbol, "\"", hashes, suffix])
}
_ => f(&[symbol, suffix]),
bridge::LitKind::CStr => f(&["c\"", symbol, "\"", suffix]),
bridge::LitKind::CStrRaw(n) => {
let hashes = get_hashes_str(n);
f(&["cr", hashes, "\"", symbol, "\"", hashes, suffix])
}
bridge::LitKind::Integer | bridge::LitKind::Float | bridge::LitKind::Err => {
f(&[symbol, suffix])
}
})
}
}