@@ -31,21 +31,22 @@ macro_rules! panic {
31
31
/// ```
32
32
#[ macro_export]
33
33
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
34
- #[ allow_internal_unstable( core_panic) ]
34
+ #[ allow_internal_unstable( core_panic, panic_internals ) ]
35
35
macro_rules! assert_eq {
36
36
( $left: expr, $right: expr $( , ) ?) => ( {
37
37
match ( & $left, & $right) {
38
38
( left_val, right_val) => {
39
39
if !( * left_val == * right_val) {
40
- let kind = $crate:: panicking:: AssertKind :: Eq ;
41
40
// The reborrows below are intentional. Without them, the stack slot for the
42
41
// borrow is initialized even before the values are compared, leading to a
43
42
// noticeable slow down.
44
43
$crate:: panicking:: assert_failed(
45
- kind,
46
- $crate:: stringify!( $left) ,
44
+ & $crate:: panic:: assert_info:: BinaryAssertionStaticData {
45
+ kind: $crate:: panic:: assert_info:: BinaryAssertKind :: Eq ,
46
+ left_expr: $crate:: stringify!( $left) ,
47
+ right_expr: $crate:: stringify!( $right) ,
48
+ } ,
47
49
& * left_val,
48
- $crate:: stringify!( $right) ,
49
50
& * right_val,
50
51
$crate:: option:: Option :: None ,
51
52
) ;
@@ -57,15 +58,16 @@ macro_rules! assert_eq {
57
58
match ( & $left, & $right) {
58
59
( left_val, right_val) => {
59
60
if !( * left_val == * right_val) {
60
- let kind = $crate:: panicking:: AssertKind :: Eq ;
61
61
// The reborrows below are intentional. Without them, the stack slot for the
62
62
// borrow is initialized even before the values are compared, leading to a
63
63
// noticeable slow down.
64
64
$crate:: panicking:: assert_failed(
65
- kind,
66
- $crate:: stringify!( $left) ,
65
+ & $crate:: panic:: assert_info:: BinaryAssertionStaticData {
66
+ kind: $crate:: panic:: assert_info:: BinaryAssertKind :: Eq ,
67
+ left_expr: $crate:: stringify!( $left) ,
68
+ right_expr: $crate:: stringify!( $right) ,
69
+ } ,
67
70
& * left_val,
68
- $crate:: stringify!( $right) ,
69
71
& * right_val,
70
72
$crate:: option:: Option :: Some ( $crate:: format_args!( $( $arg) +) ) ,
71
73
) ;
@@ -94,21 +96,22 @@ macro_rules! assert_eq {
94
96
/// ```
95
97
#[ macro_export]
96
98
#[ stable( feature = "assert_ne" , since = "1.13.0" ) ]
97
- #[ allow_internal_unstable( core_panic) ]
99
+ #[ allow_internal_unstable( core_panic, panic_internals ) ]
98
100
macro_rules! assert_ne {
99
101
( $left: expr, $right: expr $( , ) ?) => ( {
100
102
match ( & $left, & $right) {
101
103
( left_val, right_val) => {
102
104
if * left_val == * right_val {
103
- let kind = $crate:: panicking:: AssertKind :: Ne ;
104
105
// The reborrows below are intentional. Without them, the stack slot for the
105
106
// borrow is initialized even before the values are compared, leading to a
106
107
// noticeable slow down.
107
108
$crate:: panicking:: assert_failed(
108
- kind,
109
- $crate:: stringify!( $left) ,
109
+ & $crate:: panic:: assert_info:: BinaryAssertionStaticData {
110
+ kind: $crate:: panic:: assert_info:: BinaryAssertKind :: Ne ,
111
+ left_expr: $crate:: stringify!( $left) ,
112
+ right_expr: $crate:: stringify!( $right) ,
113
+ } ,
110
114
& * left_val,
111
- $crate:: stringify!( $right) ,
112
115
& * right_val,
113
116
$crate:: option:: Option :: None ,
114
117
) ;
@@ -120,15 +123,16 @@ macro_rules! assert_ne {
120
123
match ( & ( $left) , & ( $right) ) {
121
124
( left_val, right_val) => {
122
125
if * left_val == * right_val {
123
- let kind = $crate:: panicking:: AssertKind :: Ne ;
124
126
// The reborrows below are intentional. Without them, the stack slot for the
125
127
// borrow is initialized even before the values are compared, leading to a
126
128
// noticeable slow down.
127
129
$crate:: panicking:: assert_failed(
128
- kind,
129
- $crate:: stringify!( $left) ,
130
+ & $crate:: panic:: assert_info:: BinaryAssertionStaticData {
131
+ kind: $crate:: panic:: assert_info:: BinaryAssertKind :: Ne ,
132
+ left_expr: $crate:: stringify!( $left) ,
133
+ right_expr: $crate:: stringify!( $right) ,
134
+ } ,
130
135
& * left_val,
131
- $crate:: stringify!( $right) ,
132
136
& * right_val,
133
137
$crate:: option:: Option :: Some ( $crate:: format_args!( $( $arg) +) ) ,
134
138
) ;
@@ -165,17 +169,20 @@ macro_rules! assert_ne {
165
169
/// assert_matches!(c, Ok(x) | Err(x) if x.len() < 100);
166
170
/// ```
167
171
#[ unstable( feature = "assert_matches" , issue = "82775" ) ]
168
- #[ allow_internal_unstable( core_panic) ]
172
+ #[ allow_internal_unstable( core_panic, panic_internals ) ]
169
173
#[ rustc_macro_transparency = "semitransparent" ]
170
174
pub macro assert_matches {
171
175
( $left: expr, $( |) ? $( $pattern: pat_param ) |+ $( if $guard: expr ) ? $( , ) ?) => ( {
172
176
match $left {
173
177
$( $pattern ) |+ $( if $guard ) ? => { }
174
178
ref left_val => {
175
179
$crate:: panicking:: assert_matches_failed (
176
- $crate:: stringify!( $left) ,
180
+ & $crate:: panic:: assert_info:: BinaryAssertionStaticData {
181
+ kind : $crate:: panic:: assert_info:: BinaryAssertKind :: Match ,
182
+ left_expr : $crate:: stringify!( $left) ,
183
+ right_expr : $crate:: stringify!( $( $pattern) |+ $( if $guard) ?) ,
184
+ } ,
177
185
left_val,
178
- $crate:: stringify!( $( $pattern) |+ $( if $guard) ?) ,
179
186
$crate:: option:: Option :: None
180
187
) ;
181
188
}
@@ -186,9 +193,12 @@ pub macro assert_matches {
186
193
$( $pattern ) |+ $( if $guard ) ? => { }
187
194
ref left_val => {
188
195
$crate:: panicking:: assert_matches_failed (
189
- $crate:: stringify!( $left) ,
196
+ & $crate:: panic:: assert_info:: BinaryAssertionStaticData {
197
+ kind : $crate:: panic:: assert_info:: BinaryAssertKind :: Match ,
198
+ left_expr : $crate:: stringify!( $left) ,
199
+ right_expr : $crate:: stringify!( $( $pattern) |+ $( if $guard) ?) ,
200
+ } ,
190
201
left_val,
191
- $crate:: stringify!( $( $pattern) |+ $( if $guard) ?) ,
192
202
$crate:: option:: Option :: Some ( $crate:: format_args!( $( $arg) +) )
193
203
) ;
194
204
}
0 commit comments