File tree 4 files changed +54
-3
lines changed
compiler/rustc_builtin_macros/src
4 files changed +54
-3
lines changed Original file line number Diff line number Diff line change @@ -29,11 +29,11 @@ pub fn expand_assert<'cx>(
29
29
30
30
let panic_call = if let Some ( tokens) = custom_message {
31
31
let path = if span. rust_2021 ( ) {
32
- // On edition 2021, we always call `$crate::panic!()`.
32
+ // On edition 2021, we always call `$crate::panic::panic_2021 !()`.
33
33
Path {
34
34
span : sp,
35
35
segments : cx
36
- . std_path ( & [ sym:: panic] )
36
+ . std_path ( & [ sym:: panic, sym :: panic_2021 ] )
37
37
. into_iter ( )
38
38
. map ( |ident| PathSegment :: from_ident ( ident) )
39
39
. collect ( ) ,
Original file line number Diff line number Diff line change @@ -1234,7 +1234,7 @@ pub(crate) mod builtin {
1234
1234
#[ rustc_builtin_macro]
1235
1235
#[ macro_export]
1236
1236
#[ rustc_diagnostic_item = "assert_macro" ]
1237
- #[ allow_internal_unstable( core_panic) ]
1237
+ #[ allow_internal_unstable( core_panic, edition_panic ) ]
1238
1238
macro_rules! assert {
1239
1239
( $cond: expr $( , ) ?) => { { /* compiler built-in */ } } ;
1240
1240
( $cond: expr, $( $arg: tt) +) => { { /* compiler built-in */ } } ;
Original file line number Diff line number Diff line change
1
+ // edition:2021
2
+
3
+ fn main ( ) {
4
+ panic ! ( 123 ) ; //~ ERROR: format argument must be a string literal
5
+ panic ! ( "{}" ) ; //~ ERROR: 1 positional argument in format string
6
+ core:: panic!( "{}" ) ; //~ ERROR: 1 positional argument in format string
7
+ assert ! ( false , 123 ) ; //~ ERROR: format argument must be a string literal
8
+ assert ! ( false , "{}" ) ; //~ ERROR: 1 positional argument in format string
9
+ }
Original file line number Diff line number Diff line change
1
+ error: format argument must be a string literal
2
+ --> $DIR/panic-2021.rs:4:12
3
+ |
4
+ LL | panic!(123);
5
+ | ^^^
6
+ |
7
+ help: you might be missing a string literal to format with
8
+ |
9
+ LL | panic!("{}", 123);
10
+ | ^^^^^
11
+
12
+ error: 1 positional argument in format string, but no arguments were given
13
+ --> $DIR/panic-2021.rs:5:13
14
+ |
15
+ LL | panic!("{}");
16
+ | ^^
17
+
18
+ error: 1 positional argument in format string, but no arguments were given
19
+ --> $DIR/panic-2021.rs:6:19
20
+ |
21
+ LL | core::panic!("{}");
22
+ | ^^
23
+
24
+ error: format argument must be a string literal
25
+ --> $DIR/panic-2021.rs:7:20
26
+ |
27
+ LL | assert!(false, 123);
28
+ | ^^^
29
+ |
30
+ help: you might be missing a string literal to format with
31
+ |
32
+ LL | assert!(false, "{}", 123);
33
+ | ^^^^^
34
+
35
+ error: 1 positional argument in format string, but no arguments were given
36
+ --> $DIR/panic-2021.rs:8:21
37
+ |
38
+ LL | assert!(false, "{}");
39
+ | ^^
40
+
41
+ error: aborting due to 5 previous errors
42
+
You can’t perform that action at this time.
0 commit comments