|
39 | 39 | #![feature(generic_assert_internals)] |
40 | 40 | #![feature(hasher_prefixfree_extras)] |
41 | 41 | #![feature(hashmap_internals)] |
42 | | -#![feature(inline_const_pat)] |
43 | 42 | #![feature(int_roundings)] |
44 | 43 | #![feature(ip)] |
45 | 44 | #![feature(ip_from)] |
|
95 | 94 |
|
96 | 95 | /// Version of `assert_matches` that ignores fancy runtime printing in const context and uses structural equality. |
97 | 96 | macro_rules! assert_eq_const_safe { |
98 | | - ($left:expr, $right:expr) => { |
99 | | - assert_eq_const_safe!($left, $right, concat!(stringify!($left), " == ", stringify!($right))); |
| 97 | + ($t:ty: $left:expr, $right:expr) => { |
| 98 | + assert_eq_const_safe!($t: $left, $right, concat!(stringify!($left), " == ", stringify!($right))); |
100 | 99 | }; |
101 | | - ($left:expr, $right:expr$(, $($arg:tt)+)?) => { |
| 100 | + ($t:ty: $left:expr, $right:expr$(, $($arg:tt)+)?) => { |
102 | 101 | { |
103 | 102 | fn runtime() { |
104 | 103 | assert_eq!($left, $right, $($($arg)*),*); |
105 | 104 | } |
106 | 105 | const fn compiletime() { |
107 | | - assert!(matches!($left, const { $right })); |
| 106 | + const PAT: $t = $right; |
| 107 | + assert!(matches!($left, PAT), $($($arg)*),*); |
108 | 108 | } |
109 | 109 | core::intrinsics::const_eval_select((), compiletime, runtime) |
110 | 110 | } |
|
0 commit comments