@@ -11,7 +11,7 @@ use rustc_index::{IndexSlice, IndexVec};
1111use rustc_middle:: span_bug;
1212use rustc_middle:: ty:: { ResolverAstLowering , TyCtxt } ;
1313use rustc_span:: edit_distance:: find_best_match_for_name;
14- use rustc_span:: { DesugaringKind , Ident , Span , Symbol , kw, sym} ;
14+ use rustc_span:: { DUMMY_SP , DesugaringKind , Ident , Span , Symbol , kw, sym} ;
1515use smallvec:: { SmallVec , smallvec} ;
1616use thin_vec:: ThinVec ;
1717use tracing:: instrument;
@@ -93,7 +93,8 @@ impl<'a, 'hir> ItemLowerer<'a, 'hir> {
9393 debug_assert_eq ! ( self . resolver. node_id_to_def_id[ & CRATE_NODE_ID ] , CRATE_DEF_ID ) ;
9494 self . with_lctx ( CRATE_NODE_ID , |lctx| {
9595 let module = lctx. lower_mod ( & c. items , & c. spans ) ;
96- lctx. lower_attrs ( hir:: CRATE_HIR_ID , & c. attrs ) ;
96+ // FIXME(jdonszelman): is dummy span ever a problem here?
97+ lctx. lower_attrs ( hir:: CRATE_HIR_ID , & c. attrs , DUMMY_SP ) ;
9798 hir:: OwnerNode :: Crate ( module)
9899 } )
99100 }
@@ -157,7 +158,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
157158 let mut ident = i. ident ;
158159 let vis_span = self . lower_span ( i. vis . span ) ;
159160 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
160- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
161+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
161162 let kind = self . lower_item_kind ( i. span , i. id , hir_id, & mut ident, attrs, vis_span, & i. kind ) ;
162163 let item = hir:: Item {
163164 owner_id : hir_id. expect_owner ( ) ,
@@ -620,7 +621,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
620621 fn lower_foreign_item ( & mut self , i : & ForeignItem ) -> & ' hir hir:: ForeignItem < ' hir > {
621622 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
622623 let owner_id = hir_id. expect_owner ( ) ;
623- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
624+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
624625 let item = hir:: ForeignItem {
625626 owner_id,
626627 ident : self . lower_ident ( i. ident ) ,
@@ -678,7 +679,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
678679
679680 fn lower_variant ( & mut self , v : & Variant ) -> hir:: Variant < ' hir > {
680681 let hir_id = self . lower_node_id ( v. id ) ;
681- self . lower_attrs ( hir_id, & v. attrs ) ;
682+ self . lower_attrs ( hir_id, & v. attrs , v . span ) ;
682683 hir:: Variant {
683684 hir_id,
684685 def_id : self . local_def_id ( v. id ) ,
@@ -740,7 +741,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
740741 ) -> hir:: FieldDef < ' hir > {
741742 let ty = self . lower_ty ( & f. ty , ImplTraitContext :: Disallowed ( ImplTraitPosition :: FieldTy ) ) ;
742743 let hir_id = self . lower_node_id ( f. id ) ;
743- self . lower_attrs ( hir_id, & f. attrs ) ;
744+ self . lower_attrs ( hir_id, & f. attrs , f . span ) ;
744745 hir:: FieldDef {
745746 span : self . lower_span ( f. span ) ,
746747 hir_id,
@@ -759,7 +760,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
759760
760761 fn lower_trait_item ( & mut self , i : & AssocItem ) -> & ' hir hir:: TraitItem < ' hir > {
761762 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
762- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
763+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
763764 let trait_item_def_id = hir_id. expect_owner ( ) ;
764765
765766 let ( generics, kind, has_default) = match & i. kind {
@@ -895,7 +896,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
895896 let has_value = true ;
896897 let ( defaultness, _) = self . lower_defaultness ( i. kind . defaultness ( ) , has_value) ;
897898 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
898- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
899+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
899900
900901 let ( generics, kind) = match & i. kind {
901902 AssocItemKind :: Const ( box ConstItem { generics, ty, expr, .. } ) => self . lower_generics (
@@ -1056,7 +1057,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
10561057
10571058 fn lower_param ( & mut self , param : & Param ) -> hir:: Param < ' hir > {
10581059 let hir_id = self . lower_node_id ( param. id ) ;
1059- self . lower_attrs ( hir_id, & param. attrs ) ;
1060+ self . lower_attrs ( hir_id, & param. attrs , param . span ) ;
10601061 hir:: Param {
10611062 hir_id,
10621063 pat : self . lower_pat ( & param. pat ) ,
0 commit comments