@@ -158,6 +158,7 @@ trait ErrorReportingHelpers<'tcx> {
158158 fn give_expl_lifetime_param ( & self ,
159159 decl : & ast:: FnDecl ,
160160 unsafety : ast:: Unsafety ,
161+ constness : ast:: Constness ,
161162 ident : ast:: Ident ,
162163 opt_explicit_self : Option < & ast:: ExplicitSelf_ > ,
163164 generics : & ast:: Generics ,
@@ -826,8 +827,9 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> {
826827 Some ( ref node) => match * node {
827828 ast_map:: NodeItem ( ref item) => {
828829 match item. node {
829- ast:: ItemFn ( ref fn_decl, pur, _, ref gen, _) => {
830- Some ( ( fn_decl, gen, pur, item. ident , None , item. span ) )
830+ ast:: ItemFn ( ref fn_decl, unsafety, constness, _, ref gen, _) => {
831+ Some ( ( fn_decl, gen, unsafety, constness,
832+ item. ident , None , item. span ) )
831833 } ,
832834 _ => None
833835 }
@@ -838,6 +840,7 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> {
838840 Some ( ( & sig. decl ,
839841 & sig. generics ,
840842 sig. unsafety ,
843+ sig. constness ,
841844 item. ident ,
842845 Some ( & sig. explicit_self . node ) ,
843846 item. span ) )
@@ -852,6 +855,7 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> {
852855 Some ( ( & sig. decl ,
853856 & sig. generics ,
854857 sig. unsafety ,
858+ sig. constness ,
855859 item. ident ,
856860 Some ( & sig. explicit_self . node ) ,
857861 item. span ) )
@@ -863,12 +867,12 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> {
863867 } ,
864868 None => None
865869 } ;
866- let ( fn_decl, generics, unsafety, ident, expl_self, span)
870+ let ( fn_decl, generics, unsafety, constness , ident, expl_self, span)
867871 = node_inner. expect ( "expect item fn" ) ;
868872 let rebuilder = Rebuilder :: new ( self . tcx , fn_decl, expl_self,
869873 generics, same_regions, & life_giver) ;
870874 let ( fn_decl, expl_self, generics) = rebuilder. rebuild ( ) ;
871- self . give_expl_lifetime_param ( & fn_decl, unsafety, ident,
875+ self . give_expl_lifetime_param ( & fn_decl, unsafety, constness , ident,
872876 expl_self. as_ref ( ) , & generics, span) ;
873877 }
874878}
@@ -1423,12 +1427,13 @@ impl<'a, 'tcx> ErrorReportingHelpers<'tcx> for InferCtxt<'a, 'tcx> {
14231427 fn give_expl_lifetime_param ( & self ,
14241428 decl : & ast:: FnDecl ,
14251429 unsafety : ast:: Unsafety ,
1430+ constness : ast:: Constness ,
14261431 ident : ast:: Ident ,
14271432 opt_explicit_self : Option < & ast:: ExplicitSelf_ > ,
14281433 generics : & ast:: Generics ,
14291434 span : codemap:: Span ) {
1430- let suggested_fn = pprust:: fun_to_string ( decl, unsafety, ident,
1431- opt_explicit_self, generics) ;
1435+ let suggested_fn = pprust:: fun_to_string ( decl, unsafety, constness , ident,
1436+ opt_explicit_self, generics) ;
14321437 let msg = format ! ( "consider using an explicit lifetime \
14331438 parameter as shown: {}", suggested_fn) ;
14341439 self . tcx . sess . span_help ( span, & msg[ ..] ) ;
@@ -1710,7 +1715,7 @@ fn lifetimes_in_scope(tcx: &ty::ctxt,
17101715 let method_id_opt = match tcx. map . find ( parent) {
17111716 Some ( node) => match node {
17121717 ast_map:: NodeItem ( item) => match item. node {
1713- ast:: ItemFn ( _, _, _, ref gen, _) => {
1718+ ast:: ItemFn ( _, _, _, _ , ref gen, _) => {
17141719 taken. push_all ( & gen. lifetimes ) ;
17151720 None
17161721 } ,
0 commit comments