@@ -310,7 +310,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
310310 ) ;
311311 let sig = hir:: FnSig {
312312 decl,
313- header : this. lower_fn_header ( header) ,
313+ header : this. lower_fn_header ( header, fn_sig_span , id ) ,
314314 span : fn_sig_span,
315315 } ;
316316 hir:: ItemKind :: Fn ( sig, generics, body_id)
@@ -806,13 +806,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
806806 AssocItemKind :: Fn ( _, ref sig, ref generics, None ) => {
807807 let names = self . lower_fn_params_to_names ( & sig. decl ) ;
808808 let ( generics, sig) =
809- self . lower_method_sig ( generics, sig, trait_item_def_id, false , None ) ;
809+ self . lower_method_sig ( generics, sig, trait_item_def_id, false , None , i . id ) ;
810810 ( generics, hir:: TraitItemKind :: Fn ( sig, hir:: TraitFn :: Required ( names) ) )
811811 }
812812 AssocItemKind :: Fn ( _, ref sig, ref generics, Some ( ref body) ) => {
813813 let body_id = self . lower_fn_body_block ( i. span , & sig. decl , Some ( body) ) ;
814814 let ( generics, sig) =
815- self . lower_method_sig ( generics, sig, trait_item_def_id, false , None ) ;
815+ self . lower_method_sig ( generics, sig, trait_item_def_id, false , None , i . id ) ;
816816 ( generics, hir:: TraitItemKind :: Fn ( sig, hir:: TraitFn :: Provided ( body_id) ) )
817817 }
818818 AssocItemKind :: TyAlias ( _, ref generics, ref bounds, ref default) => {
@@ -882,6 +882,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
882882 impl_item_def_id,
883883 impl_trait_return_allow,
884884 asyncness. opt_return_id ( ) ,
885+ i. id ,
885886 ) ;
886887
887888 ( generics, hir:: ImplItemKind :: Fn ( sig, body_id) )
@@ -1275,8 +1276,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
12751276 fn_def_id : LocalDefId ,
12761277 impl_trait_return_allow : bool ,
12771278 is_async : Option < NodeId > ,
1279+ id : NodeId ,
12781280 ) -> ( hir:: Generics < ' hir > , hir:: FnSig < ' hir > ) {
1279- let header = self . lower_fn_header ( sig. header ) ;
1281+ let header = self . lower_fn_header ( sig. header , sig . span , id ) ;
12801282 let ( generics, decl) = self . add_in_band_defs (
12811283 generics,
12821284 fn_def_id,
@@ -1293,12 +1295,12 @@ impl<'hir> LoweringContext<'_, 'hir> {
12931295 ( generics, hir:: FnSig { header, decl, span : sig. span } )
12941296 }
12951297
1296- fn lower_fn_header ( & mut self , h : FnHeader ) -> hir:: FnHeader {
1298+ fn lower_fn_header ( & mut self , h : FnHeader , span : Span , id : NodeId ) -> hir:: FnHeader {
12971299 hir:: FnHeader {
12981300 unsafety : self . lower_unsafety ( h. unsafety ) ,
12991301 asyncness : self . lower_asyncness ( h. asyncness ) ,
13001302 constness : self . lower_constness ( h. constness ) ,
1301- abi : self . lower_extern ( h. ext ) ,
1303+ abi : self . lower_extern ( h. ext , span , id ) ,
13021304 }
13031305 }
13041306
@@ -1309,10 +1311,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
13091311 } )
13101312 }
13111313
1312- pub ( super ) fn lower_extern ( & mut self , ext : Extern ) -> abi:: Abi {
1314+ pub ( super ) fn lower_extern ( & mut self , ext : Extern , span : Span , id : NodeId ) -> abi:: Abi {
13131315 match ext {
13141316 Extern :: None => abi:: Abi :: Rust ,
1315- Extern :: Implicit => abi:: Abi :: C ,
1317+ Extern :: Implicit => {
1318+ self . maybe_lint_missing_abi ( span, id, abi:: Abi :: C ) ;
1319+ abi:: Abi :: C
1320+ }
13161321 Extern :: Explicit ( abi) => self . lower_abi ( abi) ,
13171322 }
13181323 }
0 commit comments