@@ -31,21 +31,22 @@ macro_rules! panic {
3131/// ```
3232#[ macro_export]
3333#[ stable( feature = "rust1" , since = "1.0.0" ) ]
34- #[ allow_internal_unstable( core_panic) ]
34+ #[ allow_internal_unstable( core_panic, panic_internals ) ]
3535macro_rules! assert_eq {
3636 ( $left: expr, $right: expr $( , ) ?) => ( {
3737 match ( & $left, & $right) {
3838 ( left_val, right_val) => {
3939 if !( * left_val == * right_val) {
40- let kind = $crate:: panicking:: AssertKind :: Eq ;
4140 // The reborrows below are intentional. Without them, the stack slot for the
4241 // borrow is initialized even before the values are compared, leading to a
4342 // noticeable slow down.
4443 $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+ } ,
4749 & * left_val,
48- $crate:: stringify!( $right) ,
4950 & * right_val,
5051 $crate:: option:: Option :: None ,
5152 ) ;
@@ -57,15 +58,16 @@ macro_rules! assert_eq {
5758 match ( & $left, & $right) {
5859 ( left_val, right_val) => {
5960 if !( * left_val == * right_val) {
60- let kind = $crate:: panicking:: AssertKind :: Eq ;
6161 // The reborrows below are intentional. Without them, the stack slot for the
6262 // borrow is initialized even before the values are compared, leading to a
6363 // noticeable slow down.
6464 $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+ } ,
6770 & * left_val,
68- $crate:: stringify!( $right) ,
6971 & * right_val,
7072 $crate:: option:: Option :: Some ( $crate:: format_args!( $( $arg) +) ) ,
7173 ) ;
@@ -94,21 +96,22 @@ macro_rules! assert_eq {
9496/// ```
9597#[ macro_export]
9698#[ stable( feature = "assert_ne" , since = "1.13.0" ) ]
97- #[ allow_internal_unstable( core_panic) ]
99+ #[ allow_internal_unstable( core_panic, panic_internals ) ]
98100macro_rules! assert_ne {
99101 ( $left: expr, $right: expr $( , ) ?) => ( {
100102 match ( & $left, & $right) {
101103 ( left_val, right_val) => {
102104 if * left_val == * right_val {
103- let kind = $crate:: panicking:: AssertKind :: Ne ;
104105 // The reborrows below are intentional. Without them, the stack slot for the
105106 // borrow is initialized even before the values are compared, leading to a
106107 // noticeable slow down.
107108 $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+ } ,
110114 & * left_val,
111- $crate:: stringify!( $right) ,
112115 & * right_val,
113116 $crate:: option:: Option :: None ,
114117 ) ;
@@ -120,15 +123,16 @@ macro_rules! assert_ne {
120123 match ( & ( $left) , & ( $right) ) {
121124 ( left_val, right_val) => {
122125 if * left_val == * right_val {
123- let kind = $crate:: panicking:: AssertKind :: Ne ;
124126 // The reborrows below are intentional. Without them, the stack slot for the
125127 // borrow is initialized even before the values are compared, leading to a
126128 // noticeable slow down.
127129 $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+ } ,
130135 & * left_val,
131- $crate:: stringify!( $right) ,
132136 & * right_val,
133137 $crate:: option:: Option :: Some ( $crate:: format_args!( $( $arg) +) ) ,
134138 ) ;
@@ -165,17 +169,20 @@ macro_rules! assert_ne {
165169/// assert_matches!(c, Ok(x) | Err(x) if x.len() < 100);
166170/// ```
167171#[ unstable( feature = "assert_matches" , issue = "82775" ) ]
168- #[ allow_internal_unstable( core_panic) ]
172+ #[ allow_internal_unstable( core_panic, panic_internals ) ]
169173#[ rustc_macro_transparency = "semitransparent" ]
170174pub macro assert_matches {
171175 ( $left: expr, $( |) ? $( $pattern: pat_param ) |+ $( if $guard: expr ) ? $( , ) ?) => ( {
172176 match $left {
173177 $( $pattern ) |+ $( if $guard ) ? => { }
174178 ref left_val => {
175179 $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+ } ,
177185 left_val,
178- $crate:: stringify!( $( $pattern) |+ $( if $guard) ?) ,
179186 $crate:: option:: Option :: None
180187 ) ;
181188 }
@@ -186,9 +193,12 @@ pub macro assert_matches {
186193 $( $pattern ) |+ $( if $guard ) ? => { }
187194 ref left_val => {
188195 $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+ } ,
190201 left_val,
191- $crate:: stringify!( $( $pattern) |+ $( if $guard) ?) ,
192202 $crate:: option:: Option :: Some ( $crate:: format_args!( $( $arg) +) )
193203 ) ;
194204 }
0 commit comments