@@ -500,42 +500,16 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
500
500
. resolver
501
501
. take_derive_resolutions ( expn_id)
502
502
. map ( |derives| {
503
- enum AnnotatableRef < ' a > {
504
- Item ( & ' a P < ast:: Item > ) ,
505
- Stmt ( & ' a ast:: Stmt ) ,
506
- }
507
- let item = match & fragment {
508
- AstFragment :: Items ( items) => match & items[ ..] {
509
- [ item] => AnnotatableRef :: Item ( item) ,
510
- _ => unreachable ! ( ) ,
511
- } ,
512
- AstFragment :: Stmts ( stmts) => match & stmts[ ..] {
513
- [ stmt] => AnnotatableRef :: Stmt ( stmt) ,
514
- _ => unreachable ! ( ) ,
515
- } ,
516
- _ => unreachable ! ( ) ,
517
- } ;
518
-
519
503
derive_invocations. reserve ( derives. len ( ) ) ;
520
504
derives
521
505
. into_iter ( )
522
- . map ( |( path, _exts) | {
506
+ . map ( |( path, item , _exts) | {
523
507
// FIXME: Consider using the derive resolutions (`_exts`)
524
508
// instead of enqueuing the derives to be resolved again later.
525
509
let expn_id = ExpnId :: fresh ( None ) ;
526
510
derive_invocations. push ( (
527
511
Invocation {
528
- kind : InvocationKind :: Derive {
529
- path,
530
- item : match item {
531
- AnnotatableRef :: Item ( item) => {
532
- Annotatable :: Item ( item. clone ( ) )
533
- }
534
- AnnotatableRef :: Stmt ( stmt) => {
535
- Annotatable :: Stmt ( P ( stmt. clone ( ) ) )
536
- }
537
- } ,
538
- } ,
512
+ kind : InvocationKind :: Derive { path, item } ,
539
513
fragment_kind,
540
514
expansion_data : ExpansionData {
541
515
id : expn_id,
0 commit comments