@@ -13,14 +13,14 @@ fn get<S: Stage>(
1313 name : Symbol ,
1414 param_span : Span ,
1515 arg : & ArgParser ,
16- item : & Option < Symbol > ,
17- ) -> Option < Symbol > {
16+ item : Option < Symbol > ,
17+ ) -> Option < Ident > {
1818 if item. is_some ( ) {
1919 cx. duplicate_key ( param_span, name) ;
2020 return None ;
2121 }
2222 if let Some ( v) = arg. name_value ( ) {
23- if let Some ( value_str) = v. value_as_str ( ) {
23+ if let Some ( value_str) = v. value_as_ident ( ) {
2424 Some ( value_str)
2525 } else {
2626 cx. expected_string_literal ( v. value_span , Some ( & v. value_as_lit ( ) ) ) ;
@@ -72,7 +72,7 @@ impl<S: Stage> SingleAttributeParser<S> for DeprecationParser {
7272 let features = cx. features ( ) ;
7373
7474 let mut since = None ;
75- let mut note = None ;
75+ let mut note: Option < Ident > = None ;
7676 let mut suggestion = None ;
7777
7878 let is_rustc = features. staged_api ( ) ;
@@ -92,10 +92,16 @@ impl<S: Stage> SingleAttributeParser<S> for DeprecationParser {
9292
9393 match ident_name {
9494 Some ( name @ sym:: since) => {
95- since = Some ( get ( cx, name, param. span ( ) , param. args ( ) , & since) ?) ;
95+ since = Some ( get ( cx, name, param. span ( ) , param. args ( ) , since) ?. name ) ;
9696 }
9797 Some ( name @ sym:: note) => {
98- note = Some ( get ( cx, name, param. span ( ) , param. args ( ) , & note) ?) ;
98+ note = Some ( get (
99+ cx,
100+ name,
101+ param. span ( ) ,
102+ param. args ( ) ,
103+ note. map ( |ident| ident. name ) ,
104+ ) ?) ;
99105 }
100106 Some ( name @ sym:: suggestion) => {
101107 if !features. deprecated_suggestion ( ) {
@@ -107,7 +113,7 @@ impl<S: Stage> SingleAttributeParser<S> for DeprecationParser {
107113 }
108114
109115 suggestion =
110- Some ( get ( cx, name, param. span ( ) , param. args ( ) , & suggestion) ?) ;
116+ Some ( get ( cx, name, param. span ( ) , param. args ( ) , suggestion) ?. name ) ;
111117 }
112118 _ => {
113119 cx. expected_specific_argument (
@@ -124,7 +130,7 @@ impl<S: Stage> SingleAttributeParser<S> for DeprecationParser {
124130 }
125131 }
126132 ArgParser :: NameValue ( v) => {
127- let Some ( value) = v. value_as_str ( ) else {
133+ let Some ( value) = v. value_as_ident ( ) else {
128134 cx. expected_string_literal ( v. value_span , Some ( v. value_as_lit ( ) ) ) ;
129135 return None ;
130136 } ;
0 commit comments