File tree 4 files changed +10
-8
lines changed
compiler/rustc_query_system/src
4 files changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -5353,9 +5353,9 @@ dependencies = [
5353
5353
5354
5354
[[package ]]
5355
5355
name = " thin-vec"
5356
- version = " 0.2.12 "
5356
+ version = " 0.2.13 "
5357
5357
source = " registry+https://github.com/rust-lang/crates.io-index"
5358
- checksum = " aac81b6fd6beb5884b0cf3321b8117e6e5d47ecb6fc89f414cfdcca8b2fe2dd8 "
5358
+ checksum = " a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b "
5359
5359
5360
5360
[[package ]]
5361
5361
name = " thiserror"
Original file line number Diff line number Diff line change @@ -891,7 +891,7 @@ impl<D: Deps> DepGraphData<D> {
891
891
insertion for {dep_node:?}"
892
892
) ;
893
893
894
- if ! side_effects. is_empty ( ) {
894
+ if side_effects. maybe_any ( ) {
895
895
qcx. dep_context ( ) . dep_graph ( ) . with_query_deserialization ( || {
896
896
self . emit_side_effects ( qcx, dep_node_index, side_effects)
897
897
} ) ;
Original file line number Diff line number Diff line change @@ -93,10 +93,13 @@ pub struct QuerySideEffects {
93
93
}
94
94
95
95
impl QuerySideEffects {
96
+ /// Returns true if there might be side effects.
96
97
#[ inline]
97
- pub fn is_empty ( & self ) -> bool {
98
+ pub fn maybe_any ( & self ) -> bool {
98
99
let QuerySideEffects { diagnostics } = self ;
99
- diagnostics. is_empty ( )
100
+ // Use `has_capacity` so that the destructor for `self.diagnostics` can be skipped
101
+ // if `maybe_any` is known to be false.
102
+ diagnostics. has_capacity ( )
100
103
}
101
104
pub fn append ( & mut self , other : QuerySideEffects ) {
102
105
let QuerySideEffects { diagnostics } = self ;
Original file line number Diff line number Diff line change @@ -538,10 +538,9 @@ where
538
538
539
539
prof_timer. finish_with_query_invocation_id ( dep_node_index. into ( ) ) ;
540
540
541
- let diagnostics = diagnostics. into_inner ( ) ;
542
- let side_effects = QuerySideEffects { diagnostics } ;
541
+ let side_effects = QuerySideEffects { diagnostics : diagnostics. into_inner ( ) } ;
543
542
544
- if std:: intrinsics:: unlikely ( ! side_effects. is_empty ( ) ) {
543
+ if std:: intrinsics:: unlikely ( side_effects. maybe_any ( ) ) {
545
544
if query. anon ( ) {
546
545
qcx. store_side_effects_for_anon_node ( dep_node_index, side_effects) ;
547
546
} else {
You can’t perform that action at this time.
0 commit comments