File tree Expand file tree Collapse file tree 4 files changed +10
-9
lines changed
compiler/rustc_query_system/src Expand file tree Collapse file tree 4 files changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -5339,9 +5339,9 @@ dependencies = [
53395339
53405340[[package ]]
53415341name = " thin-vec"
5342- version = " 0.2.12 "
5342+ version = " 0.2.13 "
53435343source = " registry+https://github.com/rust-lang/crates.io-index"
5344- checksum = " aac81b6fd6beb5884b0cf3321b8117e6e5d47ecb6fc89f414cfdcca8b2fe2dd8 "
5344+ checksum = " a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b "
53455345
53465346[[package ]]
53475347name = " thiserror"
Original file line number Diff line number Diff line change @@ -891,7 +891,7 @@ impl<D: Deps> DepGraphData<D> {
891891 insertion for {dep_node:?}"
892892 ) ;
893893
894- if ! side_effects. is_empty ( ) {
894+ if side_effects. maybe_any ( ) {
895895 qcx. dep_context ( ) . dep_graph ( ) . with_query_deserialization ( || {
896896 self . emit_side_effects ( qcx, dep_node_index, side_effects)
897897 } ) ;
Original file line number Diff line number Diff line change @@ -89,10 +89,12 @@ pub struct QuerySideEffects {
8989}
9090
9191impl QuerySideEffects {
92+ /// Returns true if there might be side effects.
9293 #[ inline]
93- pub fn is_empty ( & self ) -> bool {
94- let QuerySideEffects { diagnostics } = self ;
95- diagnostics. is_empty ( )
94+ pub fn maybe_any ( & self ) -> bool {
95+ // Use `has_capacity` so that the destructor for `self.diagnostics` can be skipped
96+ // if `maybe_any` is known to be false.
97+ !self . diagnostics . has_capacity ( )
9698 }
9799 pub fn append ( & mut self , other : QuerySideEffects ) {
98100 let QuerySideEffects { diagnostics } = self ;
Original file line number Diff line number Diff line change @@ -531,10 +531,9 @@ where
531531
532532 prof_timer. finish_with_query_invocation_id ( dep_node_index. into ( ) ) ;
533533
534- let diagnostics = diagnostics. into_inner ( ) ;
535- let side_effects = QuerySideEffects { diagnostics } ;
534+ let side_effects = QuerySideEffects { diagnostics : diagnostics. into_inner ( ) } ;
536535
537- if std:: intrinsics:: unlikely ( ! side_effects. is_empty ( ) ) {
536+ if std:: intrinsics:: unlikely ( side_effects. maybe_any ( ) ) {
538537 if query. anon ( ) {
539538 qcx. store_side_effects_for_anon_node ( dep_node_index, side_effects) ;
540539 } else {
You can’t perform that action at this time.
0 commit comments