@@ -10,7 +10,7 @@ use rustc_index::{IndexSlice, IndexVec};
1010use rustc_middle:: span_bug;
1111use rustc_middle:: ty:: { ResolverAstLowering , TyCtxt } ;
1212use rustc_span:: edit_distance:: find_best_match_for_name;
13- use rustc_span:: { DesugaringKind , Ident , Span , Symbol , kw, sym} ;
13+ use rustc_span:: { DUMMY_SP , DesugaringKind , Ident , Span , Symbol , kw, sym} ;
1414use rustc_target:: spec:: abi;
1515use smallvec:: { SmallVec , smallvec} ;
1616use thin_vec:: ThinVec ;
@@ -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 ( ) ,
@@ -610,7 +611,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
610611 fn lower_foreign_item ( & mut self , i : & ForeignItem ) -> & ' hir hir:: ForeignItem < ' hir > {
611612 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
612613 let owner_id = hir_id. expect_owner ( ) ;
613- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
614+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
614615 let item = hir:: ForeignItem {
615616 owner_id,
616617 ident : self . lower_ident ( i. ident ) ,
@@ -668,7 +669,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
668669
669670 fn lower_variant ( & mut self , v : & Variant ) -> hir:: Variant < ' hir > {
670671 let hir_id = self . lower_node_id ( v. id ) ;
671- self . lower_attrs ( hir_id, & v. attrs ) ;
672+ self . lower_attrs ( hir_id, & v. attrs , v . span ) ;
672673 hir:: Variant {
673674 hir_id,
674675 def_id : self . local_def_id ( v. id ) ,
@@ -730,7 +731,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
730731 ) -> hir:: FieldDef < ' hir > {
731732 let ty = self . lower_ty ( & f. ty , ImplTraitContext :: Disallowed ( ImplTraitPosition :: FieldTy ) ) ;
732733 let hir_id = self . lower_node_id ( f. id ) ;
733- self . lower_attrs ( hir_id, & f. attrs ) ;
734+ self . lower_attrs ( hir_id, & f. attrs , f . span ) ;
734735 hir:: FieldDef {
735736 span : self . lower_span ( f. span ) ,
736737 hir_id,
@@ -749,7 +750,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
749750
750751 fn lower_trait_item ( & mut self , i : & AssocItem ) -> & ' hir hir:: TraitItem < ' hir > {
751752 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
752- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
753+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
753754 let trait_item_def_id = hir_id. expect_owner ( ) ;
754755
755756 let ( generics, kind, has_default) = match & i. kind {
@@ -882,7 +883,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
882883 let has_value = true ;
883884 let ( defaultness, _) = self . lower_defaultness ( i. kind . defaultness ( ) , has_value) ;
884885 let hir_id = hir:: HirId :: make_owner ( self . current_hir_id_owner . def_id ) ;
885- let attrs = self . lower_attrs ( hir_id, & i. attrs ) ;
886+ let attrs = self . lower_attrs ( hir_id, & i. attrs , i . span ) ;
886887
887888 let ( generics, kind) = match & i. kind {
888889 AssocItemKind :: Const ( box ConstItem { generics, ty, expr, .. } ) => self . lower_generics (
@@ -1039,7 +1040,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
10391040
10401041 fn lower_param ( & mut self , param : & Param ) -> hir:: Param < ' hir > {
10411042 let hir_id = self . lower_node_id ( param. id ) ;
1042- self . lower_attrs ( hir_id, & param. attrs ) ;
1043+ self . lower_attrs ( hir_id, & param. attrs , param . span ) ;
10431044 hir:: Param {
10441045 hir_id,
10451046 pat : self . lower_pat ( & param. pat ) ,
0 commit comments