@@ -140,7 +140,7 @@ impl Msrv {
140140 fn for_attrs ( self , tcx : TyCtxt < ' _ > , node : HirId ) -> Option < RustcVersion > {
141141 once ( node)
142142 . chain ( tcx. hir_parent_id_iter ( node) )
143- . find_map ( |id| parse_attrs ( tcx. sess , tcx . hir_attrs ( id) ) )
143+ . find_map ( |id| parse_attrs ( tcx. hir_attrs ( id) ) )
144144 . or ( self . 0 )
145145 }
146146
@@ -199,24 +199,34 @@ impl MsrvStack {
199199 self . current ( ) . is_none_or ( |msrv| msrv >= required)
200200 }
201201
202- pub fn check_attributes ( & mut self , sess : & Session , attrs : & [ Attribute ] ) {
203- if let Some ( version) = parse_attrs ( sess , attrs) {
202+ pub fn check_attributes ( & mut self , attrs : & [ Attribute ] ) {
203+ if let Some ( version) = parse_attrs ( attrs) {
204204 SEEN_MSRV_ATTR . store ( true , Ordering :: Relaxed ) ;
205205 self . stack . push ( version) ;
206206 }
207207 }
208208
209- pub fn check_attributes_post ( & mut self , sess : & Session , attrs : & [ Attribute ] ) {
210- if parse_attrs ( sess , attrs) . is_some ( ) {
209+ pub fn check_attributes_post ( & mut self , attrs : & [ Attribute ] ) {
210+ if parse_attrs ( attrs) . is_some ( ) {
211211 self . stack . pop ( ) ;
212212 }
213213 }
214214}
215215
216- fn parse_attrs ( sess : & Session , attrs : & [ impl AttributeExt ] ) -> Option < RustcVersion > {
216+ fn parse_attrs ( attrs : & [ impl AttributeExt ] ) -> Option < RustcVersion > {
217+ let msrv_attr = attrs. iter ( ) . find ( |attr| attr. path_matches ( & [ sym:: clippy, sym:: msrv] ) ) ?;
218+
219+ let msrv = msrv_attr. value_str ( ) ?;
220+
221+ parse_version ( msrv)
222+ }
223+
224+ pub fn check_attrs ( sess : & Session , attrs : & [ impl AttributeExt ] ) {
217225 let mut msrv_attrs = attrs. iter ( ) . filter ( |attr| attr. path_matches ( & [ sym:: clippy, sym:: msrv] ) ) ;
218226
219- let msrv_attr = msrv_attrs. next ( ) ?;
227+ let Some ( msrv_attr) = msrv_attrs. next ( ) else {
228+ return ;
229+ } ;
220230
221231 if let Some ( duplicate) = msrv_attrs. next_back ( ) {
222232 sess. dcx ( )
@@ -227,14 +237,11 @@ fn parse_attrs(sess: &Session, attrs: &[impl AttributeExt]) -> Option<RustcVersi
227237
228238 let Some ( msrv) = msrv_attr. value_str ( ) else {
229239 sess. dcx ( ) . span_err ( msrv_attr. span ( ) , "bad clippy attribute" ) ;
230- return None ;
240+ return ;
231241 } ;
232242
233- let Some ( version ) = parse_version ( msrv) else {
243+ if parse_version ( msrv) . is_none ( ) {
234244 sess. dcx ( )
235245 . span_err ( msrv_attr. span ( ) , format ! ( "`{msrv}` is not a valid Rust version" ) ) ;
236- return None ;
237- } ;
238-
239- Some ( version)
246+ }
240247}
0 commit comments