@@ -7,10 +7,10 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet};
77use rustc_errors:: { Diag , DiagCtxtHandle } ;
88use rustc_hir:: def:: DefKind ;
99use rustc_middle:: query:: {
10- CycleError , QueryInfo , QueryJob , QueryJobId , QueryLatch , QueryStackFrame , QueryWaiter ,
10+ CycleError , QueryJob , QueryJobId , QueryLatch , QueryStackFrame , QueryWaiter ,
1111} ;
1212use rustc_middle:: ty:: TyCtxt ;
13- use rustc_span:: { DUMMY_SP , Span } ;
13+ use rustc_span:: { DUMMY_SP , Span , respan } ;
1414
1515use crate :: { CollectActiveJobsKind , collect_active_jobs_from_all_queries} ;
1616
@@ -64,7 +64,7 @@ pub(crate) fn find_cycle_in_stack<'tcx>(
6464
6565 while let Some ( job) = current_job {
6666 let info = & job_map. map [ & job] ;
67- cycle. push ( QueryInfo { span : info. job . span , frame : info. frame . clone ( ) } ) ;
67+ cycle. push ( respan ( info. job . span , info. frame . clone ( ) ) ) ;
6868
6969 if job == id {
7070 cycle. reverse ( ) ;
@@ -77,7 +77,7 @@ pub(crate) fn find_cycle_in_stack<'tcx>(
7777 // Find out why the cycle itself was used
7878 let usage = try {
7979 let parent = info. job . parent ?;
80- ( info. job . span , job_map. frame_of ( parent) . clone ( ) )
80+ respan ( info. job . span , job_map. frame_of ( parent) . clone ( ) )
8181 } ;
8282 return CycleError { usage, cycle } ;
8383 }
@@ -289,14 +289,15 @@ fn remove_cycle<'tcx>(
289289 stack. rotate_left ( pos) ;
290290 }
291291
292- let usage = entry_point. waiter . map ( |( span, job) | ( span, job_map. frame_of ( job) . clone ( ) ) ) ;
292+ let usage =
293+ entry_point. waiter . map ( |( span, job) | respan ( span, job_map. frame_of ( job) . clone ( ) ) ) ;
293294
294295 // Create the cycle error
295296 let error = CycleError {
296297 usage,
297298 cycle : stack
298299 . iter ( )
299- . map ( |& ( span, job) | QueryInfo { span, frame : job_map. frame_of ( job) . clone ( ) } )
300+ . map ( |& ( span, job) | respan ( span, job_map. frame_of ( job) . clone ( ) ) )
300301 . collect ( ) ,
301302 } ;
302303
@@ -430,41 +431,40 @@ pub(crate) fn report_cycle<'tcx>(
430431) -> Diag < ' tcx > {
431432 assert ! ( !stack. is_empty( ) ) ;
432433
433- let span = stack[ 0 ] . frame . tagged_key . default_span ( tcx, stack[ 1 % stack. len ( ) ] . span ) ;
434+ let span = stack[ 0 ] . node . tagged_key . default_span ( tcx, stack[ 1 % stack. len ( ) ] . span ) ;
434435
435436 let mut cycle_stack = Vec :: new ( ) ;
436437
437438 use crate :: error:: StackCount ;
438- let stack_bottom = stack[ 0 ] . frame . tagged_key . description ( tcx) ;
439+ let stack_bottom = stack[ 0 ] . node . tagged_key . description ( tcx) ;
439440 let stack_count = if stack. len ( ) == 1 {
440441 StackCount :: Single { stack_bottom : stack_bottom. clone ( ) }
441442 } else {
442443 StackCount :: Multiple { stack_bottom : stack_bottom. clone ( ) }
443444 } ;
444445
445446 for i in 1 ..stack. len ( ) {
446- let frame = & stack[ i] . frame ;
447- let span = frame. tagged_key . default_span ( tcx, stack[ ( i + 1 ) % stack. len ( ) ] . span ) ;
448- cycle_stack
449- . push ( crate :: error:: CycleStack { span, desc : frame. tagged_key . description ( tcx) } ) ;
447+ let node = & stack[ i] . node ;
448+ let span = node. tagged_key . default_span ( tcx, stack[ ( i + 1 ) % stack. len ( ) ] . span ) ;
449+ cycle_stack. push ( crate :: error:: CycleStack { span, desc : node. tagged_key . description ( tcx) } ) ;
450450 }
451451
452452 let mut cycle_usage = None ;
453- if let Some ( ( span , ref query ) ) = * usage {
453+ if let Some ( usage ) = usage {
454454 cycle_usage = Some ( crate :: error:: CycleUsage {
455- span : query . tagged_key . default_span ( tcx, span) ,
456- usage : query . tagged_key . description ( tcx) ,
455+ span : usage . node . tagged_key . default_span ( tcx, usage . span ) ,
456+ usage : usage . node . tagged_key . description ( tcx) ,
457457 } ) ;
458458 }
459459
460460 let alias = if stack
461461 . iter ( )
462- . all ( |entry| matches ! ( entry. frame . tagged_key. def_kind( tcx) , Some ( DefKind :: TyAlias ) ) )
462+ . all ( |entry| matches ! ( entry. node . tagged_key. def_kind( tcx) , Some ( DefKind :: TyAlias ) ) )
463463 {
464464 Some ( crate :: error:: Alias :: Ty )
465465 } else if stack
466466 . iter ( )
467- . all ( |entry| entry. frame . tagged_key . def_kind ( tcx) == Some ( DefKind :: TraitAlias ) )
467+ . all ( |entry| entry. node . tagged_key . def_kind ( tcx) == Some ( DefKind :: TraitAlias ) )
468468 {
469469 Some ( crate :: error:: Alias :: Trait )
470470 } else {
0 commit comments