@@ -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 }
@@ -313,14 +313,14 @@ fn remove_cycle<'tcx>(
313313
314314 let usage = entry_point
315315 . query_waiting_on_cycle
316- . map ( |( span, job) | ( span, job_map. frame_of ( job) . clone ( ) ) ) ;
316+ . map ( |( span, job) | respan ( span, job_map. frame_of ( job) . clone ( ) ) ) ;
317317
318318 // Create the cycle error
319319 let error = CycleError {
320320 usage,
321321 cycle : stack
322322 . iter ( )
323- . map ( |& ( span, job) | QueryInfo { span, frame : job_map. frame_of ( job) . clone ( ) } )
323+ . map ( |& ( span, job) | respan ( span, job_map. frame_of ( job) . clone ( ) ) )
324324 . collect ( ) ,
325325 } ;
326326
@@ -454,41 +454,40 @@ pub(crate) fn report_cycle<'tcx>(
454454) -> Diag < ' tcx > {
455455 assert ! ( !stack. is_empty( ) ) ;
456456
457- let span = stack[ 0 ] . frame . tagged_key . default_span ( tcx, stack[ 1 % stack. len ( ) ] . span ) ;
457+ let span = stack[ 0 ] . node . tagged_key . default_span ( tcx, stack[ 1 % stack. len ( ) ] . span ) ;
458458
459459 let mut cycle_stack = Vec :: new ( ) ;
460460
461461 use crate :: error:: StackCount ;
462- let stack_bottom = stack[ 0 ] . frame . tagged_key . description ( tcx) ;
462+ let stack_bottom = stack[ 0 ] . node . tagged_key . description ( tcx) ;
463463 let stack_count = if stack. len ( ) == 1 {
464464 StackCount :: Single { stack_bottom : stack_bottom. clone ( ) }
465465 } else {
466466 StackCount :: Multiple { stack_bottom : stack_bottom. clone ( ) }
467467 } ;
468468
469469 for i in 1 ..stack. len ( ) {
470- let frame = & stack[ i] . frame ;
471- let span = frame. tagged_key . default_span ( tcx, stack[ ( i + 1 ) % stack. len ( ) ] . span ) ;
472- cycle_stack
473- . push ( crate :: error:: CycleStack { span, desc : frame. tagged_key . description ( tcx) } ) ;
470+ let node = & stack[ i] . node ;
471+ let span = node. tagged_key . default_span ( tcx, stack[ ( i + 1 ) % stack. len ( ) ] . span ) ;
472+ cycle_stack. push ( crate :: error:: CycleStack { span, desc : node. tagged_key . description ( tcx) } ) ;
474473 }
475474
476475 let mut cycle_usage = None ;
477- if let Some ( ( span , ref query ) ) = * usage {
476+ if let Some ( usage ) = usage {
478477 cycle_usage = Some ( crate :: error:: CycleUsage {
479- span : query . tagged_key . default_span ( tcx, span) ,
480- usage : query . tagged_key . description ( tcx) ,
478+ span : usage . node . tagged_key . default_span ( tcx, usage . span ) ,
479+ usage : usage . node . tagged_key . description ( tcx) ,
481480 } ) ;
482481 }
483482
484483 let alias = if stack
485484 . iter ( )
486- . all ( |entry| matches ! ( entry. frame . tagged_key. def_kind( tcx) , Some ( DefKind :: TyAlias ) ) )
485+ . all ( |entry| matches ! ( entry. node . tagged_key. def_kind( tcx) , Some ( DefKind :: TyAlias ) ) )
487486 {
488487 Some ( crate :: error:: Alias :: Ty )
489488 } else if stack
490489 . iter ( )
491- . all ( |entry| entry. frame . tagged_key . def_kind ( tcx) == Some ( DefKind :: TraitAlias ) )
490+ . all ( |entry| entry. node . tagged_key . def_kind ( tcx) == Some ( DefKind :: TraitAlias ) )
492491 {
493492 Some ( crate :: error:: Alias :: Trait )
494493 } else {
0 commit comments