@@ -909,7 +909,7 @@ impl<'a> LoweringContext<'a> {
909
909
910
910
fn lower_ident ( & mut self , ident : Ident ) -> Name {
911
911
let ident = ident. modern ( ) ;
912
- if ident. ctxt == SyntaxContext :: empty ( ) {
912
+ if ident. span . ctxt ( ) == SyntaxContext :: empty ( ) {
913
913
return ident. name ;
914
914
}
915
915
* self . name_map
@@ -920,7 +920,7 @@ impl<'a> LoweringContext<'a> {
920
920
fn lower_label ( & mut self , label : Option < Label > ) -> Option < hir:: Label > {
921
921
label. map ( |label| hir:: Label {
922
922
name : label. ident . name ,
923
- span : label. span ,
923
+ span : label. ident . span ,
924
924
} )
925
925
}
926
926
@@ -1358,7 +1358,7 @@ impl<'a> LoweringContext<'a> {
1358
1358
fn lower_variant ( & mut self , v : & Variant ) -> hir:: Variant {
1359
1359
Spanned {
1360
1360
node : hir:: Variant_ {
1361
- name : v. node . name . name ,
1361
+ name : v. node . ident . name ,
1362
1362
attrs : self . lower_attrs ( & v. node . attrs ) ,
1363
1363
data : self . lower_variant_data ( & v. node . data ) ,
1364
1364
disr_expr : v. node
@@ -1607,7 +1607,7 @@ impl<'a> LoweringContext<'a> {
1607
1607
}
1608
1608
1609
1609
hir:: PathSegment :: new (
1610
- self . lower_ident ( segment. identifier ) ,
1610
+ self . lower_ident ( segment. ident ) ,
1611
1611
parameters,
1612
1612
infer_types,
1613
1613
)
@@ -1720,7 +1720,7 @@ impl<'a> LoweringContext<'a> {
1720
1720
decl. inputs
1721
1721
. iter ( )
1722
1722
. map ( |arg| match arg. pat . node {
1723
- PatKind :: Ident ( _, ident, None ) => respan ( ident. span , ident. node . name ) ,
1723
+ PatKind :: Ident ( _, ident, None ) => respan ( ident. span , ident. name ) ,
1724
1724
_ => respan ( arg. pat . span , keywords:: Invalid . name ( ) ) ,
1725
1725
} )
1726
1726
. collect ( )
@@ -1810,7 +1810,7 @@ impl<'a> LoweringContext<'a> {
1810
1810
default : tp. default
1811
1811
. as_ref ( )
1812
1812
. map ( |x| self . lower_ty ( x, ImplTraitContext :: Disallowed ) ) ,
1813
- span : tp. span ,
1813
+ span : tp. ident . span ,
1814
1814
pure_wrt_drop : attr:: contains_name ( & tp. attrs , "may_dangle" ) ,
1815
1815
synthetic : tp. attrs
1816
1816
. iter ( )
@@ -1822,21 +1822,22 @@ impl<'a> LoweringContext<'a> {
1822
1822
}
1823
1823
1824
1824
fn lower_lifetime ( & mut self , l : & Lifetime ) -> hir:: Lifetime {
1825
+ let span = l. ident . span ;
1825
1826
match self . lower_ident ( l. ident ) {
1826
- x if x == "'static" => self . new_named_lifetime ( l. id , l . span , hir:: LifetimeName :: Static ) ,
1827
+ x if x == "'static" => self . new_named_lifetime ( l. id , span, hir:: LifetimeName :: Static ) ,
1827
1828
x if x == "'_" => match self . anonymous_lifetime_mode {
1828
1829
AnonymousLifetimeMode :: CreateParameter => {
1829
- let fresh_name = self . collect_fresh_in_band_lifetime ( l . span ) ;
1830
- self . new_named_lifetime ( l. id , l . span , fresh_name)
1830
+ let fresh_name = self . collect_fresh_in_band_lifetime ( span) ;
1831
+ self . new_named_lifetime ( l. id , span, fresh_name)
1831
1832
}
1832
1833
1833
1834
AnonymousLifetimeMode :: PassThrough => {
1834
- self . new_named_lifetime ( l. id , l . span , hir:: LifetimeName :: Underscore )
1835
+ self . new_named_lifetime ( l. id , span, hir:: LifetimeName :: Underscore )
1835
1836
}
1836
1837
} ,
1837
1838
name => {
1838
- self . maybe_collect_in_band_lifetime ( l . span , name) ;
1839
- self . new_named_lifetime ( l. id , l . span , hir:: LifetimeName :: Name ( name) )
1839
+ self . maybe_collect_in_band_lifetime ( span, name) ;
1840
+ self . new_named_lifetime ( l. id , span, hir:: LifetimeName :: Name ( name) )
1840
1841
}
1841
1842
}
1842
1843
}
@@ -2089,10 +2090,7 @@ impl<'a> LoweringContext<'a> {
2089
2090
name : self . lower_ident ( match f. ident {
2090
2091
Some ( ident) => ident,
2091
2092
// FIXME(jseyfried) positional field hygiene
2092
- None => Ident {
2093
- name : Symbol :: intern ( & index. to_string ( ) ) ,
2094
- ctxt : f. span . ctxt ( ) ,
2095
- } ,
2093
+ None => Ident :: new ( Symbol :: intern ( & index. to_string ( ) ) , f. span ) ,
2096
2094
} ) ,
2097
2095
vis : self . lower_visibility ( & f. vis , None ) ,
2098
2096
ty : self . lower_ty ( & f. ty , ImplTraitContext :: Disallowed ) ,
@@ -2102,7 +2100,7 @@ impl<'a> LoweringContext<'a> {
2102
2100
2103
2101
fn lower_field ( & mut self , f : & Field ) -> hir:: Field {
2104
2102
hir:: Field {
2105
- name : respan ( f. ident . span , self . lower_ident ( f. ident . node ) ) ,
2103
+ name : respan ( f. ident . span , self . lower_ident ( f. ident ) ) ,
2106
2104
expr : P ( self . lower_expr ( & f. expr ) ) ,
2107
2105
span : f. span ,
2108
2106
is_shorthand : f. is_shorthand ,
@@ -2359,11 +2357,11 @@ impl<'a> LoweringContext<'a> {
2359
2357
2360
2358
// Correctly resolve `self` imports
2361
2359
if path. segments . len ( ) > 1
2362
- && path. segments . last ( ) . unwrap ( ) . identifier . name == keywords:: SelfValue . name ( )
2360
+ && path. segments . last ( ) . unwrap ( ) . ident . name == keywords:: SelfValue . name ( )
2363
2361
{
2364
2362
let _ = path. segments . pop ( ) ;
2365
2363
if rename. is_none ( ) {
2366
- * name = path. segments . last ( ) . unwrap ( ) . identifier . name ;
2364
+ * name = path. segments . last ( ) . unwrap ( ) . ident . name ;
2367
2365
}
2368
2366
}
2369
2367
@@ -2804,7 +2802,7 @@ impl<'a> LoweringContext<'a> {
2804
2802
fn lower_pat ( & mut self , p : & Pat ) -> P < hir:: Pat > {
2805
2803
let node = match p. node {
2806
2804
PatKind :: Wild => hir:: PatKind :: Wild ,
2807
- PatKind :: Ident ( ref binding_mode, pth1 , ref sub) => {
2805
+ PatKind :: Ident ( ref binding_mode, ident , ref sub) => {
2808
2806
match self . resolver . get_resolution ( p. id ) . map ( |d| d. base_def ( ) ) {
2809
2807
// `None` can occur in body-less function signatures
2810
2808
def @ None | def @ Some ( Def :: Local ( _) ) => {
@@ -2815,16 +2813,16 @@ impl<'a> LoweringContext<'a> {
2815
2813
hir:: PatKind :: Binding (
2816
2814
self . lower_binding_mode ( binding_mode) ,
2817
2815
canonical_id,
2818
- respan ( pth1 . span , pth1 . node . name ) ,
2816
+ respan ( ident . span , ident . name ) ,
2819
2817
sub. as_ref ( ) . map ( |x| self . lower_pat ( x) ) ,
2820
2818
)
2821
2819
}
2822
2820
Some ( def) => hir:: PatKind :: Path ( hir:: QPath :: Resolved (
2823
2821
None ,
2824
2822
P ( hir:: Path {
2825
- span : pth1 . span ,
2823
+ span : ident . span ,
2826
2824
def,
2827
- segments : hir_vec ! [ hir:: PathSegment :: from_name( pth1 . node . name) ] ,
2825
+ segments : hir_vec ! [ hir:: PathSegment :: from_name( ident . name) ] ,
2828
2826
} ) ,
2829
2827
) ) ,
2830
2828
}
@@ -2939,7 +2937,7 @@ impl<'a> LoweringContext<'a> {
2939
2937
ImplTraitContext :: Disallowed ,
2940
2938
) ;
2941
2939
let args = args. iter ( ) . map ( |x| self . lower_expr ( x) ) . collect ( ) ;
2942
- hir:: ExprMethodCall ( hir_seg, seg. span , args)
2940
+ hir:: ExprMethodCall ( hir_seg, seg. ident . span , args)
2943
2941
}
2944
2942
ExprKind :: Binary ( binop, ref lhs, ref rhs) => {
2945
2943
let binop = self . lower_binop ( binop) ;
@@ -3074,7 +3072,7 @@ impl<'a> LoweringContext<'a> {
3074
3072
) ,
3075
3073
ExprKind :: Field ( ref el, ident) => hir:: ExprField (
3076
3074
P ( self . lower_expr ( el) ) ,
3077
- respan ( ident. span , self . lower_ident ( ident. node ) ) ,
3075
+ respan ( ident. span , self . lower_ident ( ident) ) ,
3078
3076
) ,
3079
3077
ExprKind :: TupField ( ref el, ident) => hir:: ExprTupField ( P ( self . lower_expr ( el) ) , ident) ,
3080
3078
ExprKind :: Index ( ref el, ref er) => {
@@ -3505,12 +3503,10 @@ impl<'a> LoweringContext<'a> {
3505
3503
let attr = {
3506
3504
// allow(unreachable_code)
3507
3505
let allow = {
3508
- let allow_ident = self . str_to_ident ( "allow" ) ;
3509
- let uc_ident = self . str_to_ident ( "unreachable_code" ) ;
3510
- let uc_meta_item = attr:: mk_spanned_word_item ( e. span , uc_ident) ;
3511
- let uc_nested = NestedMetaItemKind :: MetaItem ( uc_meta_item) ;
3512
- let uc_spanned = respan ( e. span , uc_nested) ;
3513
- attr:: mk_spanned_list_item ( e. span , allow_ident, vec ! [ uc_spanned] )
3506
+ let allow_ident = Ident :: from_str ( "allow" ) . with_span_pos ( e. span ) ;
3507
+ let uc_ident = Ident :: from_str ( "unreachable_code" ) . with_span_pos ( e. span ) ;
3508
+ let uc_nested = attr:: mk_nested_word_item ( uc_ident) ;
3509
+ attr:: mk_list_item ( e. span , allow_ident, vec ! [ uc_nested] )
3514
3510
} ;
3515
3511
attr:: mk_spanned_attr_outer ( e. span , attr:: mk_attr_id ( ) , allow)
3516
3512
} ;
0 commit comments