diff options
| author | Trevor Gross <tmgross@umich.edu> | 2025-06-18 20:08:15 -0400 |
|---|---|---|
| committer | Trevor Gross <tmgross@umich.edu> | 2025-06-19 16:13:20 +0000 |
| commit | 044c99df78da9464e2ad0a90494af1e584123ab4 (patch) | |
| tree | 0aa346ba15153954fb12cfebb05791e8281ac20a /compiler/rustc_builtin_macros/src/errors.rs | |
| parent | 342f07ab31d523c17eb1fb8fe8aee48674309e23 (diff) | |
| download | rust-044c99df78da9464e2ad0a90494af1e584123ab4.tar.gz rust-044c99df78da9464e2ad0a90494af1e584123ab4.zip | |
Improve diagnostics for `concat_bytes!` with C string literals
Use the same error as other invalid types for `concat_bytes!`, rather than using `ConcatCStrLit` from `concat!`. Also add more information with a note about why this doesn't work, and a suggestion to use a null-terminated byte string instead.
Diffstat (limited to 'compiler/rustc_builtin_macros/src/errors.rs')
| -rw-r--r-- | compiler/rustc_builtin_macros/src/errors.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_builtin_macros/src/errors.rs b/compiler/rustc_builtin_macros/src/errors.rs index 3a2e96a5e5a..b7ecfd2285c 100644 --- a/compiler/rustc_builtin_macros/src/errors.rs +++ b/compiler/rustc_builtin_macros/src/errors.rs @@ -215,6 +215,8 @@ pub(crate) struct ConcatBytesInvalid { pub(crate) lit_kind: &'static str, #[subdiagnostic] pub(crate) sugg: Option<ConcatBytesInvalidSuggestion>, + #[note(builtin_macros_c_str_note)] + pub(crate) cs_note: Option<()>, } #[derive(Subdiagnostic)] @@ -239,6 +241,13 @@ pub(crate) enum ConcatBytesInvalidSuggestion { span: Span, snippet: String, }, + #[note(builtin_macros_c_str_note)] + #[suggestion(builtin_macros_c_str, code = "{as_bstr}", applicability = "machine-applicable")] + CStrLit { + #[primary_span] + span: Span, + as_bstr: String, + }, #[suggestion( builtin_macros_number_array, code = "[{snippet}]", |
