@@ -1032,14 +1032,13 @@ impl ToTokens for MethodNursery {
1032
1032
#[ derive( Default ) ]
1033
1033
#[ allow( clippy:: type_complexity) ]
1034
1034
struct GetSetNursery {
1035
- map : HashMap < ( String , Vec < Attribute > ) , ( Option < Ident > , Option < Ident > , Option < Ident > ) > ,
1035
+ map : HashMap < ( String , Vec < Attribute > ) , ( Option < Ident > , Option < Ident > ) > ,
1036
1036
validated : bool ,
1037
1037
}
1038
1038
1039
1039
enum GetSetItemKind {
1040
1040
Get ,
1041
1041
Set ,
1042
- Delete ,
1043
1042
}
1044
1043
1045
1044
impl GetSetNursery {
@@ -1058,7 +1057,6 @@ impl GetSetNursery {
1058
1057
let func = match kind {
1059
1058
GetSetItemKind :: Get => & mut entry. 0 ,
1060
1059
GetSetItemKind :: Set => & mut entry. 1 ,
1061
- GetSetItemKind :: Delete => & mut entry. 2 ,
1062
1060
} ;
1063
1061
if func. is_some ( ) {
1064
1062
bail_span ! (
@@ -1073,10 +1071,10 @@ impl GetSetNursery {
1073
1071
1074
1072
fn validate ( & mut self ) -> Result < ( ) > {
1075
1073
let mut errors = Vec :: new ( ) ;
1076
- for ( ( name, _cfgs) , ( getter, setter, deleter ) ) in & self . map {
1074
+ for ( ( name, _cfgs) , ( getter, setter) ) in & self . map {
1077
1075
if getter. is_none ( ) {
1078
1076
errors. push ( err_span ! (
1079
- setter. as_ref( ) . or ( deleter . as_ref ( ) ) . unwrap( ) ,
1077
+ setter. as_ref( ) . unwrap( ) ,
1080
1078
"GetSet '{}' is missing a getter" ,
1081
1079
name
1082
1080
) ) ;
@@ -1091,33 +1089,24 @@ impl GetSetNursery {
1091
1089
impl ToTokens for GetSetNursery {
1092
1090
fn to_tokens ( & self , tokens : & mut TokenStream ) {
1093
1091
assert ! ( self . validated, "Call `validate()` before token generation" ) ;
1094
- let properties = self
1095
- . map
1096
- . iter ( )
1097
- . map ( |( ( name, cfgs) , ( getter, setter, deleter) ) | {
1098
- let setter = match setter {
1099
- Some ( setter) => quote_spanned ! { setter. span( ) => . with_set( Self :: #setter) } ,
1100
- None => quote ! { } ,
1101
- } ;
1102
- let deleter = match deleter {
1103
- Some ( deleter) => {
1104
- quote_spanned ! { deleter. span( ) => . with_delete( Self :: #deleter) }
1105
- }
1106
- None => quote ! { } ,
1107
- } ;
1108
- quote_spanned ! { getter. span( ) =>
1109
- #( #cfgs ) *
1110
- class. set_str_attr(
1111
- #name,
1112
- :: rustpython_vm:: PyRef :: new_ref(
1113
- :: rustpython_vm:: builtins:: PyGetSet :: new( #name. into( ) , class)
1114
- . with_get( Self :: #getter)
1115
- #setter #deleter,
1116
- ctx. types. getset_type. to_owned( ) , None ) ,
1117
- ctx
1118
- ) ;
1119
- }
1120
- } ) ;
1092
+ let properties = self . map . iter ( ) . map ( |( ( name, cfgs) , ( getter, setter) ) | {
1093
+ let setter = match setter {
1094
+ Some ( setter) => quote_spanned ! { setter. span( ) => . with_set( Self :: #setter) } ,
1095
+ None => quote ! { } ,
1096
+ } ;
1097
+ quote_spanned ! { getter. span( ) =>
1098
+ #( #cfgs ) *
1099
+ class. set_str_attr(
1100
+ #name,
1101
+ :: rustpython_vm:: PyRef :: new_ref(
1102
+ :: rustpython_vm:: builtins:: PyGetSet :: new( #name. into( ) , class)
1103
+ . with_get( Self :: #getter)
1104
+ #setter,
1105
+ ctx. types. getset_type. to_owned( ) , None ) ,
1106
+ ctx
1107
+ ) ;
1108
+ }
1109
+ } ) ;
1121
1110
tokens. extend ( properties) ;
1122
1111
}
1123
1112
}
@@ -1242,7 +1231,7 @@ impl MethodItemMeta {
1242
1231
struct GetSetItemMeta ( ItemMetaInner ) ;
1243
1232
1244
1233
impl ItemMeta for GetSetItemMeta {
1245
- const ALLOWED_NAMES : & ' static [ & ' static str ] = & [ "name" , "setter" , "deleter" ] ;
1234
+ const ALLOWED_NAMES : & ' static [ & ' static str ] = & [ "name" , "setter" ] ;
1246
1235
1247
1236
fn from_inner ( inner : ItemMetaInner ) -> Self {
1248
1237
Self ( inner)
@@ -1256,17 +1245,10 @@ impl ItemMeta for GetSetItemMeta {
1256
1245
impl GetSetItemMeta {
1257
1246
fn getset_name ( & self ) -> Result < ( String , GetSetItemKind ) > {
1258
1247
let inner = self . inner ( ) ;
1259
- let kind = match ( inner. _bool ( "setter" ) ?, inner. _bool ( "deleter" ) ?) {
1260
- ( false , false ) => GetSetItemKind :: Get ,
1261
- ( true , false ) => GetSetItemKind :: Set ,
1262
- ( false , true ) => GetSetItemKind :: Delete ,
1263
- ( true , true ) => {
1264
- bail_span ! (
1265
- & inner. meta_ident,
1266
- "can't have both setter and deleter on a #[{}] fn" ,
1267
- inner. meta_name( )
1268
- )
1269
- }
1248
+ let kind = if inner. _bool ( "setter" ) ? {
1249
+ GetSetItemKind :: Set
1250
+ } else {
1251
+ GetSetItemKind :: Get
1270
1252
} ;
1271
1253
let name = inner. _optional_str ( "name" ) ?;
1272
1254
let py_name = if let Some ( name) = name {
@@ -1299,7 +1281,6 @@ impl GetSetItemMeta {
1299
1281
match kind {
1300
1282
GetSetItemKind :: Get => sig_name,
1301
1283
GetSetItemKind :: Set => extract_prefix_name ( "set_" , "setter" ) ?,
1302
- GetSetItemKind :: Delete => extract_prefix_name ( "del_" , "deleter" ) ?,
1303
1284
}
1304
1285
} ;
1305
1286
Ok ( ( py_name, kind) )
0 commit comments