@@ -2022,7 +2022,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2022
2022
} )
2023
2023
}
2024
2024
2025
- fn lower_local ( & mut self , l : & Local ) -> ( hir:: Local , SmallVec < [ NodeId ; 1 ] > ) {
2025
+ fn lower_local ( & mut self , l : & Local ) -> ( hir:: Local < ' hir > , SmallVec < [ NodeId ; 1 ] > ) {
2026
2026
let mut ids = SmallVec :: < [ NodeId ; 1 ] > :: new ( ) ;
2027
2027
if self . sess . features_untracked ( ) . impl_trait_in_bindings {
2028
2028
if let Some ( ref ty) = l. ty {
@@ -2586,7 +2586,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2586
2586
bounds. iter ( ) . map ( |bound| self . lower_param_bound ( bound, itctx. reborrow ( ) ) ) . collect ( )
2587
2587
}
2588
2588
2589
- fn lower_block ( & mut self , b : & Block , targeted_by_break : bool ) -> P < hir:: Block > {
2589
+ fn lower_block ( & mut self , b : & Block , targeted_by_break : bool ) -> P < hir:: Block < ' hir > > {
2590
2590
let mut stmts = vec ! [ ] ;
2591
2591
let mut expr = None ;
2592
2592
@@ -2614,12 +2614,12 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2614
2614
2615
2615
/// Lowers a block directly to an expression, presuming that it
2616
2616
/// has no attributes and is not targeted by a `break`.
2617
- fn lower_block_expr ( & mut self , b : & Block ) -> hir:: Expr {
2617
+ fn lower_block_expr ( & mut self , b : & Block ) -> hir:: Expr < ' hir > {
2618
2618
let block = self . lower_block ( b, false ) ;
2619
2619
self . expr_block ( block, AttrVec :: new ( ) )
2620
2620
}
2621
2621
2622
- fn lower_pat ( & mut self , p : & Pat ) -> P < hir:: Pat > {
2622
+ fn lower_pat ( & mut self , p : & Pat ) -> P < hir:: Pat < ' hir > > {
2623
2623
let node = match p. kind {
2624
2624
PatKind :: Wild => hir:: PatKind :: Wild ,
2625
2625
PatKind :: Ident ( ref binding_mode, ident, ref sub) => {
@@ -2700,7 +2700,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2700
2700
& mut self ,
2701
2701
pats : & [ AstP < Pat > ] ,
2702
2702
ctx : & str ,
2703
- ) -> ( HirVec < P < hir:: Pat > > , Option < usize > ) {
2703
+ ) -> ( HirVec < P < hir:: Pat < ' hir > > > , Option < usize > ) {
2704
2704
let mut elems = Vec :: with_capacity ( pats. len ( ) ) ;
2705
2705
let mut rest = None ;
2706
2706
@@ -2737,7 +2737,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2737
2737
/// When encountering `($binding_mode $ident @)? ..` (`slice`),
2738
2738
/// this is interpreted as a sub-slice pattern semantically.
2739
2739
/// Patterns that follow, which are not like `slice` -- or an error occurs, are in `after`.
2740
- fn lower_pat_slice ( & mut self , pats : & [ AstP < Pat > ] ) -> hir:: PatKind {
2740
+ fn lower_pat_slice ( & mut self , pats : & [ AstP < Pat > ] ) -> hir:: PatKind < ' hir > {
2741
2741
let mut before = Vec :: new ( ) ;
2742
2742
let mut after = Vec :: new ( ) ;
2743
2743
let mut slice = None ;
@@ -2796,8 +2796,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2796
2796
p : & Pat ,
2797
2797
binding_mode : & BindingMode ,
2798
2798
ident : Ident ,
2799
- lower_sub : impl FnOnce ( & mut Self ) -> Option < P < hir:: Pat > > ,
2800
- ) -> hir:: PatKind {
2799
+ lower_sub : impl FnOnce ( & mut Self ) -> Option < P < hir:: Pat < ' hir > > > ,
2800
+ ) -> hir:: PatKind < ' hir > {
2801
2801
match self . resolver . get_partial_res ( p. id ) . map ( |d| d. base_res ( ) ) {
2802
2802
// `None` can occur in body-less function signatures
2803
2803
res @ None | res @ Some ( Res :: Local ( _) ) => {
@@ -2824,12 +2824,12 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2824
2824
}
2825
2825
}
2826
2826
2827
- fn pat_wild_with_node_id_of ( & mut self , p : & Pat ) -> P < hir:: Pat > {
2827
+ fn pat_wild_with_node_id_of ( & mut self , p : & Pat ) -> P < hir:: Pat < ' hir > > {
2828
2828
self . pat_with_node_id_of ( p, hir:: PatKind :: Wild )
2829
2829
}
2830
2830
2831
2831
/// Construct a `Pat` with the `HirId` of `p.id` lowered.
2832
- fn pat_with_node_id_of ( & mut self , p : & Pat , kind : hir:: PatKind ) -> P < hir:: Pat > {
2832
+ fn pat_with_node_id_of ( & mut self , p : & Pat , kind : hir:: PatKind < ' hir > ) -> P < hir:: Pat < ' hir > > {
2833
2833
P ( hir:: Pat { hir_id : self . lower_node_id ( p. id ) , kind, span : p. span } )
2834
2834
}
2835
2835
@@ -2843,7 +2843,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2843
2843
}
2844
2844
2845
2845
/// Used to ban the `..` pattern in places it shouldn't be semantically.
2846
- fn ban_illegal_rest_pat ( & self , sp : Span ) -> hir:: PatKind {
2846
+ fn ban_illegal_rest_pat ( & self , sp : Span ) -> hir:: PatKind < ' hir > {
2847
2847
self . diagnostic ( )
2848
2848
. struct_span_err ( sp, "`..` patterns are not allowed here" )
2849
2849
. note ( "only allowed in tuple, tuple struct, and slice patterns" )
@@ -2869,11 +2869,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2869
2869
} )
2870
2870
}
2871
2871
2872
- fn lower_stmt ( & mut self , s : & Stmt ) -> SmallVec < [ hir:: Stmt ; 1 ] > {
2872
+ fn lower_stmt ( & mut self , s : & Stmt ) -> SmallVec < [ hir:: Stmt < ' hir > ; 1 ] > {
2873
2873
let kind = match s. kind {
2874
2874
StmtKind :: Local ( ref l) => {
2875
2875
let ( l, item_ids) = self . lower_local ( l) ;
2876
- let mut ids: SmallVec < [ hir:: Stmt ; 1 ] > = item_ids
2876
+ let mut ids: SmallVec < [ hir:: Stmt < ' hir > ; 1 ] > = item_ids
2877
2877
. into_iter ( )
2878
2878
. map ( |item_id| {
2879
2879
let item_id = hir:: ItemId { id : self . lower_node_id ( item_id) } ;
@@ -2944,36 +2944,36 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2944
2944
2945
2945
// Helper methods for building HIR.
2946
2946
2947
- fn stmt ( & mut self , span : Span , kind : hir:: StmtKind ) -> hir:: Stmt {
2947
+ fn stmt ( & mut self , span : Span , kind : hir:: StmtKind < ' hir > ) -> hir:: Stmt < ' hir > {
2948
2948
hir:: Stmt { span, kind, hir_id : self . next_id ( ) }
2949
2949
}
2950
2950
2951
- fn stmt_expr ( & mut self , span : Span , expr : hir:: Expr ) -> hir:: Stmt {
2951
+ fn stmt_expr ( & mut self , span : Span , expr : hir:: Expr < ' hir > ) -> hir:: Stmt < ' hir > {
2952
2952
self . stmt ( span, hir:: StmtKind :: Expr ( P ( expr) ) )
2953
2953
}
2954
2954
2955
2955
fn stmt_let_pat (
2956
2956
& mut self ,
2957
2957
attrs : AttrVec ,
2958
2958
span : Span ,
2959
- init : Option < P < hir:: Expr > > ,
2960
- pat : P < hir:: Pat > ,
2959
+ init : Option < P < hir:: Expr < ' hir > > > ,
2960
+ pat : P < hir:: Pat < ' hir > > ,
2961
2961
source : hir:: LocalSource ,
2962
- ) -> hir:: Stmt {
2962
+ ) -> hir:: Stmt < ' hir > {
2963
2963
let local = hir:: Local { attrs, hir_id : self . next_id ( ) , init, pat, source, span, ty : None } ;
2964
2964
self . stmt ( span, hir:: StmtKind :: Local ( P ( local) ) )
2965
2965
}
2966
2966
2967
- fn block_expr ( & mut self , expr : P < hir:: Expr > ) -> hir:: Block {
2967
+ fn block_expr ( & mut self , expr : P < hir:: Expr < ' hir > > ) -> hir:: Block < ' hir > {
2968
2968
self . block_all ( expr. span , hir:: HirVec :: new ( ) , Some ( expr) )
2969
2969
}
2970
2970
2971
2971
fn block_all (
2972
2972
& mut self ,
2973
2973
span : Span ,
2974
- stmts : hir:: HirVec < hir:: Stmt > ,
2975
- expr : Option < P < hir:: Expr > > ,
2976
- ) -> hir:: Block {
2974
+ stmts : hir:: HirVec < hir:: Stmt < ' hir > > ,
2975
+ expr : Option < P < hir:: Expr < ' hir > > > ,
2976
+ ) -> hir:: Block < ' hir > {
2977
2977
hir:: Block {
2978
2978
stmts,
2979
2979
expr,
@@ -2985,33 +2985,33 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
2985
2985
}
2986
2986
2987
2987
/// Constructs a `true` or `false` literal pattern.
2988
- fn pat_bool ( & mut self , span : Span , val : bool ) -> P < hir:: Pat > {
2988
+ fn pat_bool ( & mut self , span : Span , val : bool ) -> P < hir:: Pat < ' hir > > {
2989
2989
let expr = self . expr_bool ( span, val) ;
2990
2990
self . pat ( span, hir:: PatKind :: Lit ( P ( expr) ) )
2991
2991
}
2992
2992
2993
- fn pat_ok ( & mut self , span : Span , pat : P < hir:: Pat > ) -> P < hir:: Pat > {
2993
+ fn pat_ok ( & mut self , span : Span , pat : P < hir:: Pat < ' hir > > ) -> P < hir:: Pat < ' hir > > {
2994
2994
self . pat_std_enum ( span, & [ sym:: result, sym:: Result , sym:: Ok ] , hir_vec ! [ pat] )
2995
2995
}
2996
2996
2997
- fn pat_err ( & mut self , span : Span , pat : P < hir:: Pat > ) -> P < hir:: Pat > {
2997
+ fn pat_err ( & mut self , span : Span , pat : P < hir:: Pat < ' hir > > ) -> P < hir:: Pat < ' hir > > {
2998
2998
self . pat_std_enum ( span, & [ sym:: result, sym:: Result , sym:: Err ] , hir_vec ! [ pat] )
2999
2999
}
3000
3000
3001
- fn pat_some ( & mut self , span : Span , pat : P < hir:: Pat > ) -> P < hir:: Pat > {
3001
+ fn pat_some ( & mut self , span : Span , pat : P < hir:: Pat < ' hir > > ) -> P < hir:: Pat < ' hir > > {
3002
3002
self . pat_std_enum ( span, & [ sym:: option, sym:: Option , sym:: Some ] , hir_vec ! [ pat] )
3003
3003
}
3004
3004
3005
- fn pat_none ( & mut self , span : Span ) -> P < hir:: Pat > {
3005
+ fn pat_none ( & mut self , span : Span ) -> P < hir:: Pat < ' hir > > {
3006
3006
self . pat_std_enum ( span, & [ sym:: option, sym:: Option , sym:: None ] , hir_vec ! [ ] )
3007
3007
}
3008
3008
3009
3009
fn pat_std_enum (
3010
3010
& mut self ,
3011
3011
span : Span ,
3012
3012
components : & [ Symbol ] ,
3013
- subpats : hir:: HirVec < P < hir:: Pat > > ,
3014
- ) -> P < hir:: Pat > {
3013
+ subpats : hir:: HirVec < P < hir:: Pat < ' hir > > > ,
3014
+ ) -> P < hir:: Pat < ' hir > > {
3015
3015
let path = self . std_path ( span, components, None , true ) ;
3016
3016
let qpath = hir:: QPath :: Resolved ( None , P ( path) ) ;
3017
3017
let pt = if subpats. is_empty ( ) {
@@ -3022,7 +3022,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
3022
3022
self . pat ( span, pt)
3023
3023
}
3024
3024
3025
- fn pat_ident ( & mut self , span : Span , ident : Ident ) -> ( P < hir:: Pat > , hir:: HirId ) {
3025
+ fn pat_ident ( & mut self , span : Span , ident : Ident ) -> ( P < hir:: Pat < ' hir > > , hir:: HirId ) {
3026
3026
self . pat_ident_binding_mode ( span, ident, hir:: BindingAnnotation :: Unannotated )
3027
3027
}
3028
3028
@@ -3031,7 +3031,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
3031
3031
span : Span ,
3032
3032
ident : Ident ,
3033
3033
bm : hir:: BindingAnnotation ,
3034
- ) -> ( P < hir:: Pat > , hir:: HirId ) {
3034
+ ) -> ( P < hir:: Pat < ' hir > > , hir:: HirId ) {
3035
3035
let hir_id = self . next_id ( ) ;
3036
3036
3037
3037
(
@@ -3044,11 +3044,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
3044
3044
)
3045
3045
}
3046
3046
3047
- fn pat_wild ( & mut self , span : Span ) -> P < hir:: Pat > {
3047
+ fn pat_wild ( & mut self , span : Span ) -> P < hir:: Pat < ' hir > > {
3048
3048
self . pat ( span, hir:: PatKind :: Wild )
3049
3049
}
3050
3050
3051
- fn pat ( & mut self , span : Span , kind : hir:: PatKind ) -> P < hir:: Pat > {
3051
+ fn pat ( & mut self , span : Span , kind : hir:: PatKind < ' hir > ) -> P < hir:: Pat < ' hir > > {
3052
3052
P ( hir:: Pat { hir_id : self . next_id ( ) , kind, span } )
3053
3053
}
3054
3054
0 commit comments