@@ -85,6 +85,7 @@ use super::utils::StrOrInt;
8585/// }
8686/// }
8787/// ```
88+ #[ expect( unused_macro_rules) ] // Remove once at least one variant is deprecated
8889macro_rules! generate_permissions {
8990 { $ (
9091 $( #[ doc = $doc: literal] ) *
@@ -95,7 +96,7 @@ macro_rules! generate_permissions {
9596 impl Permissions : u64 {
9697 $(
9798 $( #[ doc = $doc] ) *
98- $( #[ deprecated = $deprecated] ) *
99+ $( #[ deprecated = $deprecated] ) ?
99100 const $perm_upper = $value;
100101 ) *
101102 }
@@ -109,8 +110,8 @@ macro_rules! generate_permissions {
109110 #[ must_use]
110111 $(
111112 #[ deprecated = $deprecated]
112- #[ allow ( deprecated) ]
113- ) *
113+ #[ expect ( deprecated) ]
114+ ) ?
114115 pub fn $perm_lower( self ) -> bool {
115116 self . contains( Self :: $perm_upper)
116117 }
@@ -119,26 +120,23 @@ macro_rules! generate_permissions {
119120 /// Returns a list of names of all contained permissions.
120121 #[ must_use]
121122 #[ cfg( feature = "model" ) ]
122- #[ allow( deprecated, unused_mut, unused_assignments) ]
123123 pub fn get_permission_names( self ) -> Vec <& ' static str > {
124124 let mut names = Vec :: new( ) ;
125125
126126 $(
127- let mut is_deprecated = false ;
128- $(
129- let _ = $deprecated;
130- is_deprecated = true ;
131- ) *
132-
133- if !is_deprecated && self . $perm_lower( ) {
134- names. push( $name) ;
135- }
127+ generate_permissions!( @append_name: $( $deprecated) ? self , names, $perm_lower, $name) ;
136128 ) *
137129
138130 names
139131 }
140132 }
141- }
133+ } ;
134+ ( @append_name: $self: ident, $vec: ident, $perm_lower: ident, $name: literal) => {
135+ if $self. $perm_lower( ) {
136+ $vec. push( $name) ;
137+ }
138+ } ;
139+ ( @append_name: $deprecated: literal $self: ident, $vec: ident, $perm_lower: ident, $name: literal) => { } ;
142140}
143141
144142/// Returns a set of permissions with the original @everyone permissions set to true.
0 commit comments