@@ -346,7 +346,7 @@ impl<D: Deps> DepGraphData<D> {
346
346
task : fn ( Ctxt , A ) -> R ,
347
347
hash_result : Option < fn ( & mut StableHashingContext < ' _ > , & R ) -> Fingerprint > ,
348
348
) -> ( R , DepNodeIndex ) {
349
- self . assert_nonexistent_node ( & key, || {
349
+ self . assert_nonexistent_node ( key, || {
350
350
format ! (
351
351
"forcing query with already existing `DepNode`\n \
352
352
- query-key: {arg:?}\n \
@@ -356,7 +356,7 @@ impl<D: Deps> DepGraphData<D> {
356
356
357
357
let with_deps = |task_deps| D :: with_deps ( task_deps, || task ( cx, arg) ) ;
358
358
let ( result, edges) = if cx. dep_context ( ) . is_eval_always ( key. kind ) {
359
- ( with_deps ( TaskDepsRef :: EvalAlways ) , EdgesVec :: new ( ) )
359
+ ( with_deps ( TaskDepsRef :: EvalAlways ) , EdgesVec :: eval_always ( ) )
360
360
} else {
361
361
let task_deps = Lock :: new ( TaskDeps {
362
362
#[ cfg( debug_assertions) ]
@@ -630,12 +630,12 @@ impl<D: Deps> DepGraph<D> {
630
630
impl < D : Deps > DepGraphData < D > {
631
631
fn assert_nonexistent_node < S : std:: fmt:: Display > (
632
632
& self ,
633
- _dep_node : & DepNode ,
633
+ _dep_node : DepNode ,
634
634
_msg : impl FnOnce ( ) -> S ,
635
635
) {
636
636
#[ cfg( debug_assertions) ]
637
637
if let Some ( seen_dep_nodes) = & self . current . seen_dep_nodes {
638
- let seen = seen_dep_nodes. lock ( ) . contains ( _dep_node) ;
638
+ let seen = seen_dep_nodes. lock ( ) . contains ( & _dep_node) ;
639
639
assert ! ( !seen, "{}" , _msg( ) ) ;
640
640
}
641
641
}
@@ -748,7 +748,7 @@ impl<D: Deps> DepGraphData<D> {
748
748
// in the previous compilation session too, so we can try to
749
749
// mark it as green by recursively marking all of its
750
750
// dependencies green.
751
- self . try_mark_previous_green ( qcx, prev_index, dep_node , None )
751
+ self . try_mark_previous_green ( qcx, prev_index, None )
752
752
. map ( |dep_node_index| ( prev_index, dep_node_index) )
753
753
}
754
754
}
@@ -762,47 +762,40 @@ impl<D: Deps> DepGraphData<D> {
762
762
frame : Option < & MarkFrame < ' _ > > ,
763
763
) -> Option < ( ) > {
764
764
let dep_dep_node_color = self . colors . get ( parent_dep_node_index) ;
765
- let dep_dep_node = & self . previous . index_to_node ( parent_dep_node_index) ;
765
+ let dep_dep_node = || self . previous . index_to_node ( parent_dep_node_index) ;
766
766
767
767
match dep_dep_node_color {
768
768
Some ( DepNodeColor :: Green ( _) ) => {
769
769
// This dependency has been marked as green before, we are
770
770
// still fine and can continue with checking the other
771
771
// dependencies.
772
- debug ! ( "dependency {dep_dep_node :?} was immediately green" ) ;
772
+ debug ! ( "dependency {:?} was immediately green" , dep_dep_node ( ) ) ;
773
773
return Some ( ( ) ) ;
774
774
}
775
775
Some ( DepNodeColor :: Red ) => {
776
776
// We found a dependency the value of which has changed
777
777
// compared to the previous compilation session. We cannot
778
778
// mark the DepNode as green and also don't need to bother
779
779
// with checking any of the other dependencies.
780
- debug ! ( "dependency {dep_dep_node :?} was immediately red" ) ;
780
+ debug ! ( "dependency {:?} was immediately red" , dep_dep_node ( ) ) ;
781
781
return None ;
782
782
}
783
783
None => { }
784
784
}
785
785
786
- // We don't know the state of this dependency. If it isn't
787
- // an eval_always node, let's try to mark it green recursively.
788
- if !qcx. dep_context ( ) . is_eval_always ( dep_dep_node. kind ) {
789
- debug ! (
790
- "state of dependency {:?} ({}) is unknown, trying to mark it green" ,
791
- dep_dep_node, dep_dep_node. hash,
792
- ) ;
793
-
794
- let node_index =
795
- self . try_mark_previous_green ( qcx, parent_dep_node_index, dep_dep_node, frame) ;
786
+ // We don't know the state of this dependency. Let's try to mark it green recursively.
787
+ debug ! ( "state of dependency {:?} is unknown, trying to mark it green" , dep_dep_node( ) ) ;
788
+ let node_index = self . try_mark_previous_green ( qcx, parent_dep_node_index, frame) ;
796
789
797
- if node_index. is_some ( ) {
798
- debug ! ( "managed to MARK dependency {dep_dep_node:?} as green" , ) ;
799
- return Some ( ( ) ) ;
800
- }
790
+ if node_index. is_some ( ) {
791
+ debug ! ( "managed to MARK dependency {:?} as green" , dep_dep_node( ) ) ;
792
+ return Some ( ( ) ) ;
801
793
}
802
794
803
795
// We failed to mark it green, so we try to force the query.
796
+ let dep_dep_node = dep_dep_node ( ) ;
804
797
debug ! ( "trying to force dependency {dep_dep_node:?}" ) ;
805
- if !qcx. dep_context ( ) . try_force_from_dep_node ( * dep_dep_node, frame) {
798
+ if !qcx. dep_context ( ) . try_force_from_dep_node ( dep_dep_node, frame) {
806
799
// The DepNode could not be forced.
807
800
debug ! ( "dependency {dep_dep_node:?} could not be forced" ) ;
808
801
return None ;
@@ -846,23 +839,18 @@ impl<D: Deps> DepGraphData<D> {
846
839
& self ,
847
840
qcx : Qcx ,
848
841
prev_dep_node_index : SerializedDepNodeIndex ,
849
- dep_node : & DepNode ,
850
842
frame : Option < & MarkFrame < ' _ > > ,
851
843
) -> Option < DepNodeIndex > {
852
844
let frame = MarkFrame { index : prev_dep_node_index, parent : frame } ;
845
+ let dep_node = || self . previous . index_to_node ( prev_dep_node_index) ;
853
846
854
847
#[ cfg( not( parallel_compiler) ) ]
855
- self . assert_nonexistent_node ( dep_node, || {
856
- format ! ( "trying to mark existing {dep_node :?} as green" )
848
+ self . assert_nonexistent_node ( dep_node ( ) , || {
849
+ format ! ( "trying to mark existing {:?} as green" , dep_node ( ) )
857
850
} ) ;
858
851
#[ cfg( not( parallel_compiler) ) ]
859
852
debug_assert ! ( self . colors. get( prev_dep_node_index) . is_none( ) ) ;
860
853
861
- // We never try to mark eval_always nodes as green
862
- debug_assert ! ( !qcx. dep_context( ) . is_eval_always( dep_node. kind) ) ;
863
-
864
- debug_assert_eq ! ( self . previous. index_to_node( prev_dep_node_index) , * dep_node) ;
865
-
866
854
let prev_deps = self . previous . edge_targets_from ( prev_dep_node_index) ;
867
855
868
856
for dep_dep_node_index in prev_deps {
@@ -889,8 +877,8 @@ impl<D: Deps> DepGraphData<D> {
889
877
#[ cfg( not( parallel_compiler) ) ]
890
878
debug_assert ! (
891
879
self . colors. get( prev_dep_node_index) . is_none( ) ,
892
- "DepGraph::try_mark_previous_green() - Duplicate DepNodeColor \
893
- insertion for { dep_node:?}"
880
+ "DepGraph::try_mark_previous_green() - Duplicate DepNodeColor insertion for {:?}" ,
881
+ dep_node( )
894
882
) ;
895
883
896
884
if side_effects. maybe_any ( ) {
@@ -903,7 +891,7 @@ impl<D: Deps> DepGraphData<D> {
903
891
// Multiple threads can all write the same color here
904
892
self . colors . insert ( prev_dep_node_index, DepNodeColor :: Green ( dep_node_index) ) ;
905
893
906
- debug ! ( "successfully marked {dep_node :?} as green" ) ;
894
+ debug ! ( "successfully marked {:?} as green" , dep_node ( ) ) ;
907
895
Some ( dep_node_index)
908
896
}
909
897
@@ -950,7 +938,7 @@ impl<D: Deps> DepGraph<D> {
950
938
951
939
pub fn assert_nonexistent_node < S : std:: fmt:: Display > (
952
940
& self ,
953
- dep_node : & DepNode ,
941
+ dep_node : DepNode ,
954
942
msg : impl FnOnce ( ) -> S ,
955
943
) {
956
944
if cfg ! ( debug_assertions)
0 commit comments