about summary refs log tree commit diff
path: root/tests/ui/macros/concat-bytes-error.rs
diff options
context:
space:
mode:
authorTrevor Gross <tmgross@umich.edu>2025-06-18 20:55:52 -0400
committerTrevor Gross <tmgross@umich.edu>2025-06-18 21:10:31 -0400
commit342f07ab31d523c17eb1fb8fe8aee48674309e23 (patch)
tree68ae8055697471e0ec7e79ce24bd264c164448da /tests/ui/macros/concat-bytes-error.rs
parent044514eb26511d2d8aa999fdf27e85df6beb6576 (diff)
downloadrust-342f07ab31d523c17eb1fb8fe8aee48674309e23.tar.gz
rust-342f07ab31d523c17eb1fb8fe8aee48674309e23.zip
Add a test for `concat_bytes!` with C strings
Also ensure the suggestions are checked, since this will be updated.
Diffstat (limited to 'tests/ui/macros/concat-bytes-error.rs')
-rw-r--r--tests/ui/macros/concat-bytes-error.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/ui/macros/concat-bytes-error.rs b/tests/ui/macros/concat-bytes-error.rs
index db5d3cab0bd..f7f291f446f 100644
--- a/tests/ui/macros/concat-bytes-error.rs
+++ b/tests/ui/macros/concat-bytes-error.rs
@@ -1,20 +1,43 @@
+//@ edition: 2021
+// 2021 edition for C string literals
+
 #![feature(concat_bytes)]
 
 fn main() {
+    // Identifiers
     concat_bytes!(pie); //~ ERROR expected a byte literal
     concat_bytes!(pie, pie); //~ ERROR expected a byte literal
+
+    // String literals
     concat_bytes!("tnrsi", "tnri"); //~ ERROR cannot concatenate string literals
+    //~^ SUGGESTION b"tnrsi"
+    concat_bytes!(r"tnrsi", r"tnri"); //~ ERROR cannot concatenate string literals
+    //~^ SUGGESTION br"tnrsi"
+    concat_bytes!(r#"tnrsi"#, r###"tnri"###); //~ ERROR cannot concatenate string literals
+    //~^ SUGGESTION br#"tnrsi"#
+    concat_bytes!(c"tnrsi", c"tnri"); //~ ERROR  cannot concatenate a C string literal
+    concat_bytes!(cr"tnrsi", cr"tnri"); //~ ERROR  cannot concatenate a C string literal
+    concat_bytes!(cr#"tnrsi"#, cr###"tnri"###); //~ ERROR  cannot concatenate a C string literal
+
+    // Other literals
     concat_bytes!(2.8); //~ ERROR cannot concatenate float literals
     concat_bytes!(300); //~ ERROR cannot concatenate numeric literals
+    //~^ SUGGESTION [300]
     concat_bytes!('a'); //~ ERROR cannot concatenate character literals
+    //~^ SUGGESTION b'a'
     concat_bytes!(true, false); //~ ERROR cannot concatenate boolean literals
     concat_bytes!(42, b"va", b'l'); //~ ERROR cannot concatenate numeric literals
+    //~^ SUGGESTION [42]
     concat_bytes!(42, b"va", b'l', [1, 2]); //~ ERROR cannot concatenate numeric literals
+    //~^ SUGGESTION [42]
+
+    // Nested items
     concat_bytes!([
         "hi", //~ ERROR cannot concatenate string literals
     ]);
     concat_bytes!([
         'a', //~ ERROR cannot concatenate character literals
+        //~^ SUGGESTION b'a'
     ]);
     concat_bytes!([
         true, //~ ERROR cannot concatenate boolean literals
@@ -38,6 +61,7 @@ fn main() {
         [5, 6, 7], //~ ERROR cannot concatenate doubly nested array
     ]);
     concat_bytes!(5u16); //~ ERROR cannot concatenate numeric literals
+    //~^ SUGGESTION [5u16]
     concat_bytes!([5u16]); //~ ERROR numeric literal is not a `u8`
     concat_bytes!([3; ()]); //~ ERROR repeat count is not a positive number
     concat_bytes!([3; -2]); //~ ERROR repeat count is not a positive number