@@ -24,7 +24,7 @@ impl<S: Stage> SingleAttributeParser<S> for OptimizeParser {
2424 const TEMPLATE : AttributeTemplate = template ! ( List : & [ "size" , "speed" , "none" ] ) ;
2525
2626 fn convert ( cx : & mut AcceptContext < ' _ , ' _ , S > , args : & ArgParser ) -> Option < AttributeKind > {
27- let single = cx. single_element_list ( args, cx. attr_span ) ?;
27+ let single = cx. expect_single_element_list ( args, cx. attr_span ) ?;
2828
2929 let res = match single. meta_item ( ) . and_then ( |i| i. path ( ) . word ( ) . map ( |i| i. name ) ) {
3030 Some ( sym:: size) => OptimizeAttr :: Size ,
@@ -75,7 +75,7 @@ impl<S: Stage> SingleAttributeParser<S> for CoverageParser {
7575 const TEMPLATE : AttributeTemplate = template ! ( OneOf : & [ sym:: off, sym:: on] ) ;
7676
7777 fn convert ( cx : & mut AcceptContext < ' _ , ' _ , S > , args : & ArgParser ) -> Option < AttributeKind > {
78- let arg = cx. single_element_list ( args, cx. attr_span ) ?;
78+ let arg = cx. expect_single_element_list ( args, cx. attr_span ) ?;
7979
8080 let mut fail_incorrect_argument =
8181 |span| cx. adcx ( ) . expected_specific_argument ( span, & [ sym:: on, sym:: off] ) ;
@@ -371,8 +371,7 @@ impl<S: Stage> AttributeParser<S> for UsedParser {
371371 let used_by = match args {
372372 ArgParser :: NoArgs => UsedBy :: Default ,
373373 ArgParser :: List ( list) => {
374- let Some ( l) = list. single ( ) else {
375- cx. adcx ( ) . expected_single_argument ( list. span , list. len ( ) ) ;
374+ let Some ( l) = cx. expect_single ( list) else {
376375 return ;
377376 } ;
378377
@@ -463,9 +462,7 @@ fn parse_tf_attribute<S: Stage>(
463462 args : & ArgParser ,
464463) -> impl IntoIterator < Item = ( Symbol , Span ) > {
465464 let mut features = Vec :: new ( ) ;
466- let ArgParser :: List ( list) = args else {
467- let attr_span = cx. attr_span ;
468- cx. adcx ( ) . expected_list ( attr_span, args) ;
465+ let Some ( list) = cx. expect_list ( args, cx. attr_span ) else {
469466 return features;
470467 } ;
471468 if list. is_empty ( ) {
@@ -588,11 +585,7 @@ impl<S: Stage> SingleAttributeParser<S> for SanitizeParser {
588585 ] ) ;
589586
590587 fn convert ( cx : & mut AcceptContext < ' _ , ' _ , S > , args : & ArgParser ) -> Option < AttributeKind > {
591- let Some ( list) = args. list ( ) else {
592- let attr_span = cx. attr_span ;
593- cx. adcx ( ) . expected_list ( attr_span, args) ;
594- return None ;
595- } ;
588+ let list = cx. expect_list ( args, cx. attr_span ) ?;
596589
597590 let mut on_set = SanitizerSet :: empty ( ) ;
598591 let mut off_set = SanitizerSet :: empty ( ) ;
@@ -719,11 +712,7 @@ impl<S: Stage> SingleAttributeParser<S> for PatchableFunctionEntryParser {
719712 const TEMPLATE : AttributeTemplate = template ! ( List : & [ "prefix_nops = m, entry_nops = n" ] ) ;
720713
721714 fn convert ( cx : & mut AcceptContext < ' _ , ' _ , S > , args : & ArgParser ) -> Option < AttributeKind > {
722- let Some ( meta_item_list) = args. list ( ) else {
723- let attr_span = cx. attr_span ;
724- cx. adcx ( ) . expected_list ( attr_span, args) ;
725- return None ;
726- } ;
715+ let meta_item_list = cx. expect_list ( args, cx. attr_span ) ?;
727716
728717 let mut prefix = None ;
729718 let mut entry = None ;
0 commit comments