@@ -182,18 +182,12 @@ macro_rules! push_rules {
182
182
$crate:: push_rules!( @match inputs( ) patterns( ) args $args) ;
183
183
} ;
184
184
185
- ( @match inputs( $in0: ident $( $inputs: tt) * ) patterns( $pat0: ident, $( $pats: tt) * ) args $args: tt) => {
186
- {
187
- let $pat0 = Clone :: clone( $in0) ;
188
- $crate:: push_rules!( @match inputs( $( $inputs) * ) patterns( $( $pats) * ) args $args) ;
189
- }
185
+ ( @match inputs( ) patterns $patterns: tt args $args: tt) => {
186
+ compile_error!( "more patterns in rule than arguments on fn" )
190
187
} ;
191
188
192
- ( @match inputs( $in0: ident) patterns( $pat0: ident) args $args: tt) => {
193
- {
194
- let $pat0 = Clone :: clone( $in0) ;
195
- $crate:: push_rules!( @match inputs( ) patterns( ) args $args) ;
196
- }
189
+ ( @match inputs $inputs: tt patterns( ) args $args: tt) => {
190
+ compile_error!( "fewer patterns in rule than arguments on fn" )
197
191
} ;
198
192
199
193
( @match inputs( $in0: ident $( $inputs: tt) * ) patterns( $pat0: ident : $ty0: ty, $( $pats: tt) * ) args $args: tt) => {
@@ -204,23 +198,37 @@ macro_rules! push_rules {
204
198
}
205
199
} ;
206
200
207
- ( @match inputs( $in0: ident) patterns( $pat0: ident : $ty0: ty) args $args: tt) => {
201
+ ( @match inputs( $in0: ident $ ( $inputs : tt ) * ) patterns( $pat0: ident : $ty0: ty) args $args: tt) => {
208
202
{
209
203
if let Some ( $pat0) = $crate:: Downcast :: downcast:: <$ty0>( $in0) {
210
- $crate:: push_rules!( @match inputs( ) patterns( ) args $args) ;
204
+ $crate:: push_rules!( @match inputs( $ ( $inputs ) * ) patterns( ) args $args) ;
211
205
}
212
206
}
213
207
} ;
214
208
209
+ ( @match inputs( $in0: ident $( $inputs: tt) * ) patterns( $pat0: ident, $( $pats: tt) * ) args $args: tt) => {
210
+ {
211
+ let $pat0 = Clone :: clone( $in0) ;
212
+ $crate:: push_rules!( @match inputs( $( $inputs) * ) patterns( $( $pats) * ) args $args) ;
213
+ }
214
+ } ;
215
+
216
+ ( @match inputs( $in0: ident $( $inputs: tt) * ) patterns( $pat0: ident) args $args: tt) => {
217
+ {
218
+ let $pat0 = Clone :: clone( $in0) ;
219
+ $crate:: push_rules!( @match inputs( $( $inputs) * ) patterns( ) args $args) ;
220
+ }
221
+ } ;
222
+
215
223
( @match inputs( $in0: ident $( $inputs: tt) * ) patterns( $pat0: pat, $( $pats: tt) * ) args $args: tt) => {
216
224
if let Some ( $pat0) = $crate:: Downcast :: downcast( & $in0) {
217
225
$crate:: push_rules!( @match inputs( $( $inputs) * ) patterns( $( $pats) * ) args $args) ;
218
226
}
219
227
} ;
220
228
221
- ( @match inputs( $in0: ident) patterns( $pat0: pat) args $args: tt) => {
229
+ ( @match inputs( $in0: ident $ ( $inputs : tt ) * ) patterns( $pat0: pat) args $args: tt) => {
222
230
if let Some ( $pat0) = $crate:: Downcast :: downcast( & $in0) {
223
- $crate:: push_rules!( @match inputs( ) patterns( ) args $args) ;
231
+ $crate:: push_rules!( @match inputs( $ ( $inputs ) * ) patterns( ) args $args) ;
224
232
}
225
233
} ;
226
234
0 commit comments