@@ -487,6 +487,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
487
487
parent : LocalDefId ,
488
488
node_id : ast:: NodeId ,
489
489
data : DefPathData ,
490
+ span : Span ,
490
491
) -> LocalDefId {
491
492
debug_assert_ne ! ( node_id, ast:: DUMMY_NODE_ID ) ;
492
493
assert ! (
@@ -497,7 +498,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
497
498
self . tcx. hir( ) . def_key( self . local_def_id( node_id) ) ,
498
499
) ;
499
500
500
- let def_id = self . tcx . create_def ( parent, data) . def_id ( ) ;
501
+ let def_id = self . tcx . at ( span ) . create_def ( parent, data) . def_id ( ) ;
501
502
502
503
debug ! ( "create_def: def_id_to_node_id[{:?}] <-> {:?}" , def_id, node_id) ;
503
504
self . resolver . node_id_to_def_id . insert ( node_id, def_id) ;
@@ -823,6 +824,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
823
824
self . current_hir_id_owner . def_id ,
824
825
param,
825
826
DefPathData :: LifetimeNs ( kw:: UnderscoreLifetime ) ,
827
+ ident. span ,
826
828
) ;
827
829
debug ! ( ?_def_id) ;
828
830
@@ -1151,15 +1153,16 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1151
1153
1152
1154
let parent_def_id = self . current_hir_id_owner ;
1153
1155
let node_id = self . next_node_id ( ) ;
1156
+ let span = self . lower_span ( ty. span ) ;
1154
1157
1155
1158
// Add a definition for the in-band const def.
1156
1159
let def_id = self . create_def (
1157
1160
parent_def_id. def_id ,
1158
1161
node_id,
1159
1162
DefPathData :: AnonConst ,
1163
+ span,
1160
1164
) ;
1161
1165
1162
- let span = self . lower_span ( ty. span ) ;
1163
1166
let path_expr = Expr {
1164
1167
id : ty. id ,
1165
1168
kind : ExprKind :: Path ( qself. clone ( ) , path. clone ( ) ) ,
@@ -1353,12 +1356,13 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1353
1356
itctx,
1354
1357
) ,
1355
1358
ImplTraitContext :: Universal => {
1359
+ let span = t. span ;
1356
1360
self . create_def (
1357
1361
self . current_hir_id_owner . def_id ,
1358
1362
* def_node_id,
1359
1363
DefPathData :: ImplTrait ,
1364
+ span,
1360
1365
) ;
1361
- let span = t. span ;
1362
1366
let ident = Ident :: from_str_and_span ( & pprust:: ty_to_string ( t) , span) ;
1363
1367
let ( param, bounds, path) =
1364
1368
self . lower_generic_and_bounds ( * def_node_id, span, ident, bounds) ;
@@ -1455,6 +1459,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1455
1459
self . current_hir_id_owner . def_id ,
1456
1460
opaque_ty_node_id,
1457
1461
DefPathData :: ImplTrait ,
1462
+ opaque_ty_span,
1458
1463
) ;
1459
1464
debug ! ( ?opaque_ty_def_id) ;
1460
1465
@@ -1608,6 +1613,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1608
1613
parent_def_id,
1609
1614
node_id,
1610
1615
DefPathData :: LifetimeNs ( lifetime. ident . name ) ,
1616
+ lifetime. ident . span ,
1611
1617
) ;
1612
1618
remapping. insert ( old_def_id, new_def_id) ;
1613
1619
@@ -1624,6 +1630,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1624
1630
parent_def_id,
1625
1631
node_id,
1626
1632
DefPathData :: LifetimeNs ( kw:: UnderscoreLifetime ) ,
1633
+ lifetime. ident . span ,
1627
1634
) ;
1628
1635
remapping. insert ( old_def_id, new_def_id) ;
1629
1636
@@ -1806,7 +1813,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1806
1813
let fn_def_id = self . local_def_id ( fn_node_id) ;
1807
1814
1808
1815
let opaque_ty_def_id =
1809
- self . create_def ( fn_def_id, opaque_ty_node_id, DefPathData :: ImplTrait ) ;
1816
+ self . create_def ( fn_def_id, opaque_ty_node_id, DefPathData :: ImplTrait , opaque_ty_span ) ;
1810
1817
1811
1818
// When we create the opaque type for this async fn, it is going to have
1812
1819
// to capture all the lifetimes involved in the signature (including in the
@@ -1866,6 +1873,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1866
1873
opaque_ty_def_id,
1867
1874
inner_node_id,
1868
1875
DefPathData :: LifetimeNs ( ident. name ) ,
1876
+ ident. span ,
1869
1877
) ;
1870
1878
new_remapping. insert ( outer_def_id, inner_def_id) ;
1871
1879
0 commit comments