@@ -535,10 +535,11 @@ maybe_unsafe
535
535
| %empty { $$ = mk_none(); }
536
536
;
537
537
538
- maybe_default_impl
539
- : IMPL { $$ = mk_none(); }
540
- | DEFAULT IMPL { $$ = $1 }
541
- ;
538
+ maybe_default_maybe_unsafe
539
+ : DEFAULT UNSAFE { $$ = mk_atom("DefaultUnsafe"); }
540
+ | DEFAULT { $$ = mk_atom("Default"); }
541
+ | UNSAFE { $$ = mk_atom("Unsafe"); }
542
+ | %empty { $$ = mk_none(); }
542
543
543
544
trait_method
544
545
: type_method { $$ = mk_node("Required", 1, $1); }
@@ -594,27 +595,27 @@ impl_method
594
595
// they are ambiguous with traits. We do the same here, regrettably,
595
596
// by splitting ty into ty and ty_prim.
596
597
item_impl
597
- : maybe_unsafe maybe_default_impl generic_params ty_prim_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
598
+ : maybe_default_maybe_unsafe IMPL generic_params ty_prim_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
598
599
{
599
- $$ = mk_node("ItemImpl", 6, $1, $3, $4, $5, $7, $8, $2 );
600
+ $$ = mk_node("ItemImpl", 6, $1, $3, $4, $5, $7, $8);
600
601
}
601
- | maybe_unsafe maybe_default_impl generic_params '(' ty ')' maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
602
+ | maybe_default_maybe_unsafe IMPL generic_params '(' ty ')' maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
602
603
{
603
- $$ = mk_node("ItemImpl", 6, $1, $3, 5, $6, $9, $10, $2 );
604
+ $$ = mk_node("ItemImpl", 6, $1, $3, 5, $6, $9, $10);
604
605
}
605
- | maybe_unsafe maybe_default_impl generic_params trait_ref FOR ty_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
606
+ | maybe_default_maybe_unsafe IMPL generic_params trait_ref FOR ty_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
606
607
{
607
- $$ = mk_node("ItemImpl", 6, $3, $4, $6, $7, $9, $10, $2 );
608
+ $$ = mk_node("ItemImpl", 6, $3, $4, $6, $7, $9, $10);
608
609
}
609
- | maybe_unsafe maybe_default_impl generic_params '!' trait_ref FOR ty_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
610
+ | maybe_default_maybe_unsafe IMPL generic_params '!' trait_ref FOR ty_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
610
611
{
611
- $$ = mk_node("ItemImplNeg", 7, $1, $3, $5, $7, $8, $10, $11, $2 );
612
+ $$ = mk_node("ItemImplNeg", 7, $1, $3, $5, $7, $8, $10, $11);
612
613
}
613
- | maybe_unsafe maybe_default_impl generic_params trait_ref FOR DOTDOT '{' '}'
614
+ | maybe_default_maybe_unsafe IMPL generic_params trait_ref FOR DOTDOT '{' '}'
614
615
{
615
616
$$ = mk_node("ItemImplDefault", 3, $1, $3, $4);
616
617
}
617
- | maybe_unsafe maybe_default_impl generic_params '!' trait_ref FOR DOTDOT '{' '}'
618
+ | maybe_default_maybe_unsafe IMPL generic_params '!' trait_ref FOR DOTDOT '{' '}'
618
619
{
619
620
$$ = mk_node("ItemImplDefaultNeg", 3, $1, $3, $4);
620
621
}
0 commit comments