Skip to content

Commit d571ae8

Browse files
committed
Auto merge of #129817 - matthiaskrgr:rollup-ll2ld5m, r=matthiaskrgr
Rollup of 12 pull requests Successful merges: - #129659 (const fn stability checking: also check declared language features) - #129711 (Expand NLL MIR dumps) - #129730 (f32 docs: define 'arithmetic' operations) - #129733 (Subtree update of `rust-analyzer`) - #129749 (llvm-wrapper: adapt for LLVM API changes) - #129757 (Add a test for trait solver overflow in MIR inliner cycle detection) - #129760 (Make the "detect-old-time" UI test more representative) - #129767 (Remove `#[macro_use] extern crate tracing`, round 4) - #129774 (Remove `#[macro_use] extern crate tracing` from rustdoc and rustfmt) - #129785 (Miri subtree update) - #129791 (mark joboet as on vacation) - #129812 (interpret, codegen: tweak some comments and checks regarding Box with custom allocator) Failed merges: - #129777 (Add `unreachable_pub`, round 4) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 9649706 + 830b1de commit d571ae8

File tree

655 files changed

+11015
-3490
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

655 files changed

+11015
-3490
lines changed

compiler/rustc_borrowck/src/borrow_set.rs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use rustc_middle::mir::{self, traversal, Body, Local, Location};
88
use rustc_middle::span_bug;
99
use rustc_middle::ty::{RegionVid, TyCtxt};
1010
use rustc_mir_dataflow::move_paths::MoveData;
11+
use tracing::debug;
1112

1213
use crate::path_utils::allow_two_phase_borrow;
1314
use crate::place_ext::PlaceExt;

compiler/rustc_borrowck/src/constraints/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use rustc_index::{IndexSlice, IndexVec};
55
use rustc_middle::mir::ConstraintCategory;
66
use rustc_middle::ty::{RegionVid, TyCtxt, VarianceDiagInfo};
77
use rustc_span::Span;
8+
use tracing::{debug, instrument};
89

910
use crate::region_infer::{ConstraintSccs, RegionDefinition, RegionTracker};
1011
use crate::type_check::Locations;

compiler/rustc_borrowck/src/dataflow.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use rustc_middle::ty::{RegionVid, TyCtxt};
1010
use rustc_mir_dataflow::fmt::DebugWithContext;
1111
use rustc_mir_dataflow::impls::{EverInitializedPlaces, MaybeUninitializedPlaces};
1212
use rustc_mir_dataflow::{Analysis, AnalysisDomain, GenKill, Results, ResultsVisitable};
13+
use tracing::debug;
1314

1415
use crate::{places_conflict, BorrowSet, PlaceConflictBias, PlaceExt, RegionInferenceContext};
1516

compiler/rustc_borrowck/src/diagnostics/bound_region_errors.rs

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
1919
use rustc_trait_selection::traits::query::type_op;
2020
use rustc_trait_selection::traits::ObligationCtxt;
2121
use rustc_traits::{type_op_ascribe_user_type_with_span, type_op_prove_predicate_with_cause};
22+
use tracing::{debug, instrument};
2223

2324
use crate::region_infer::values::RegionElement;
2425
use crate::session_diagnostics::{

compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ use rustc_trait_selection::error_reporting::traits::FindExprBySpan;
4040
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
4141
use rustc_trait_selection::infer::InferCtxtExt;
4242
use rustc_trait_selection::traits::{Obligation, ObligationCause, ObligationCtxt};
43+
use tracing::{debug, instrument};
4344

4445
use super::explain_borrow::{BorrowExplanation, LaterUseKind};
4546
use super::{DescribePlaceOpt, RegionName, RegionNameSource, UseSpans};

compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use rustc_middle::ty::{self, RegionVid, Ty, TyCtxt};
2020
use rustc_span::symbol::{kw, Symbol};
2121
use rustc_span::{sym, DesugaringKind, Span};
2222
use rustc_trait_selection::error_reporting::traits::FindExprBySpan;
23+
use tracing::{debug, instrument};
2324

2425
use super::{find_use, RegionName, UseSpans};
2526
use crate::borrow_set::BorrowData;

compiler/rustc_borrowck/src/diagnostics/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ use rustc_trait_selection::infer::InferCtxtExt;
2727
use rustc_trait_selection::traits::{
2828
type_known_to_meet_bound_modulo_regions, FulfillmentErrorCode,
2929
};
30+
use tracing::debug;
3031

3132
use super::borrow_set::BorrowData;
3233
use super::MirBorrowckCtxt;

compiler/rustc_borrowck/src/diagnostics/move_errors.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use rustc_middle::ty::{self, Ty};
1010
use rustc_mir_dataflow::move_paths::{LookupResult, MovePathIndex};
1111
use rustc_span::{BytePos, ExpnKind, MacroKind, Span};
1212
use rustc_trait_selection::error_reporting::traits::FindExprBySpan;
13+
use tracing::debug;
1314

1415
use crate::diagnostics::{CapturedMessageOpt, DescribePlaceOpt, UseSpans};
1516
use crate::prefixes::PrefixSet;

compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use rustc_target::abi::FieldIdx;
2020
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
2121
use rustc_trait_selection::infer::InferCtxtExt;
2222
use rustc_trait_selection::traits;
23+
use tracing::debug;
2324

2425
use crate::diagnostics::BorrowedContentSource;
2526
use crate::util::FindAssignments;

compiler/rustc_borrowck/src/diagnostics/outlives_suggestion.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use rustc_data_structures::fx::FxIndexSet;
1010
use rustc_errors::Diag;
1111
use rustc_middle::ty::RegionVid;
1212
use smallvec::SmallVec;
13+
use tracing::debug;
1314

1415
use super::{ErrorConstraintInfo, RegionName, RegionNameSource};
1516
use crate::MirBorrowckCtxt;

compiler/rustc_borrowck/src/diagnostics/region_errors.rs

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use rustc_trait_selection::error_reporting::infer::region::unexpected_hidden_reg
2525
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
2626
use rustc_trait_selection::infer::InferCtxtExt;
2727
use rustc_trait_selection::traits::{Obligation, ObligationCtxt};
28+
use tracing::{debug, instrument, trace};
2829

2930
use super::{OutlivesSuggestionBuilder, RegionName, RegionNameSource};
3031
use crate::nll::ConstraintDescription;

compiler/rustc_borrowck/src/diagnostics/region_name.rs

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use rustc_middle::{bug, span_bug};
1414
use rustc_span::symbol::{kw, sym, Symbol};
1515
use rustc_span::{Span, DUMMY_SP};
1616
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
17+
use tracing::{debug, instrument};
1718

1819
use crate::universal_regions::DefiningTy;
1920
use crate::MirBorrowckCtxt;

compiler/rustc_borrowck/src/diagnostics/var_name.rs

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use rustc_middle::mir::{Body, Local};
33
use rustc_middle::ty::{self, RegionVid, TyCtxt};
44
use rustc_span::symbol::Symbol;
55
use rustc_span::Span;
6+
use tracing::debug;
67

78
use crate::region_infer::RegionInferenceContext;
89

compiler/rustc_borrowck/src/lib.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@
1515
#![warn(unreachable_pub)]
1616
// tidy-alphabetical-end
1717

18-
#[macro_use]
19-
extern crate tracing;
20-
2118
use std::cell::RefCell;
2219
use std::collections::BTreeMap;
2320
use std::marker::PhantomData;
@@ -51,6 +48,7 @@ use rustc_session::lint::builtin::UNUSED_MUT;
5148
use rustc_span::{Span, Symbol};
5249
use rustc_target::abi::FieldIdx;
5350
use smallvec::SmallVec;
51+
use tracing::{debug, instrument};
5452

5553
use self::diagnostics::{AccessKind, IllegalMoveOriginKind, MoveError, RegionName};
5654
use self::location::LocationTable;
@@ -229,7 +227,7 @@ fn do_mir_borrowck<'tcx>(
229227

230228
// Dump MIR results into a file, if that is enabled. This let us
231229
// write unit-tests, as well as helping with debugging.
232-
nll::dump_mir_results(&infcx, body, &regioncx, &opt_closure_req);
230+
nll::dump_nll_mir(&infcx, body, &regioncx, &opt_closure_req, &borrow_set);
233231

234232
// We also have a `#[rustc_regions]` annotation that causes us to dump
235233
// information.

compiler/rustc_borrowck/src/location.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use rustc_index::IndexVec;
22
use rustc_middle::mir::{BasicBlock, Body, Location};
3+
use tracing::debug;
34

45
/// Maps between a MIR Location, which identifies a particular
56
/// statement within a basic block, to a "rich location", which

compiler/rustc_borrowck/src/member_constraints.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use rustc_index::{IndexSlice, IndexVec};
77
use rustc_middle::infer::MemberConstraint;
88
use rustc_middle::ty::{self, Ty};
99
use rustc_span::Span;
10+
use tracing::debug;
1011

1112
/// Compactly stores a set of `R0 member of [R1...Rn]` constraints,
1213
/// indexed by the region `R0`.

compiler/rustc_borrowck/src/nll.rs

+68-27
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use polonius_engine::{Algorithm, Output};
99
use rustc_data_structures::fx::FxIndexMap;
1010
use rustc_hir::def_id::LocalDefId;
1111
use rustc_index::IndexSlice;
12+
use rustc_middle::mir::pretty::{dump_mir_with_options, PrettyPrintMirOptions};
1213
use rustc_middle::mir::{
1314
create_dump_file, dump_enabled, dump_mir, Body, ClosureOutlivesSubject,
1415
ClosureRegionRequirements, PassWhere, Promoted,
@@ -19,7 +20,9 @@ use rustc_mir_dataflow::impls::MaybeInitializedPlaces;
1920
use rustc_mir_dataflow::move_paths::MoveData;
2021
use rustc_mir_dataflow::points::DenseLocationMap;
2122
use rustc_mir_dataflow::ResultsCursor;
23+
use rustc_session::config::MirIncludeSpans;
2224
use rustc_span::symbol::sym;
25+
use tracing::{debug, instrument};
2326

2427
use crate::borrow_set::BorrowSet;
2528
use crate::consumers::ConsumerOptions;
@@ -208,52 +211,90 @@ pub(crate) fn compute_regions<'cx, 'tcx>(
208211
}
209212
}
210213

211-
pub(super) fn dump_mir_results<'tcx>(
214+
/// `-Zdump-mir=nll` dumps MIR annotated with NLL specific information:
215+
/// - free regions
216+
/// - inferred region values
217+
/// - region liveness
218+
/// - inference constraints and their causes
219+
///
220+
/// As well as graphviz `.dot` visualizations of:
221+
/// - the region constraints graph
222+
/// - the region SCC graph
223+
pub(super) fn dump_nll_mir<'tcx>(
212224
infcx: &BorrowckInferCtxt<'tcx>,
213225
body: &Body<'tcx>,
214226
regioncx: &RegionInferenceContext<'tcx>,
215227
closure_region_requirements: &Option<ClosureRegionRequirements<'tcx>>,
228+
borrow_set: &BorrowSet<'tcx>,
216229
) {
217-
if !dump_enabled(infcx.tcx, "nll", body.source.def_id()) {
230+
let tcx = infcx.tcx;
231+
if !dump_enabled(tcx, "nll", body.source.def_id()) {
218232
return;
219233
}
220234

221-
dump_mir(infcx.tcx, false, "nll", &0, body, |pass_where, out| {
222-
match pass_where {
223-
// Before the CFG, dump out the values for each region variable.
224-
PassWhere::BeforeCFG => {
225-
regioncx.dump_mir(infcx.tcx, out)?;
226-
writeln!(out, "|")?;
227-
228-
if let Some(closure_region_requirements) = closure_region_requirements {
229-
writeln!(out, "| Free Region Constraints")?;
230-
for_each_region_constraint(
231-
infcx.tcx,
232-
closure_region_requirements,
233-
&mut |msg| writeln!(out, "| {msg}"),
234-
)?;
235+
// We want the NLL extra comments printed by default in NLL MIR dumps (they were removed in
236+
// #112346). Specifying `-Z mir-include-spans` on the CLI still has priority: for example,
237+
// they're always disabled in mir-opt tests to make working with blessed dumps easier.
238+
let options = PrettyPrintMirOptions {
239+
include_extra_comments: matches!(
240+
infcx.tcx.sess.opts.unstable_opts.mir_include_spans,
241+
MirIncludeSpans::On | MirIncludeSpans::Nll
242+
),
243+
};
244+
dump_mir_with_options(
245+
tcx,
246+
false,
247+
"nll",
248+
&0,
249+
body,
250+
|pass_where, out| {
251+
match pass_where {
252+
// Before the CFG, dump out the values for each region variable.
253+
PassWhere::BeforeCFG => {
254+
regioncx.dump_mir(tcx, out)?;
235255
writeln!(out, "|")?;
256+
257+
if let Some(closure_region_requirements) = closure_region_requirements {
258+
writeln!(out, "| Free Region Constraints")?;
259+
for_each_region_constraint(tcx, closure_region_requirements, &mut |msg| {
260+
writeln!(out, "| {msg}")
261+
})?;
262+
writeln!(out, "|")?;
263+
}
264+
265+
if borrow_set.len() > 0 {
266+
writeln!(out, "| Borrows")?;
267+
for (borrow_idx, borrow_data) in borrow_set.iter_enumerated() {
268+
writeln!(
269+
out,
270+
"| {:?}: issued at {:?} in {:?}",
271+
borrow_idx, borrow_data.reserve_location, borrow_data.region
272+
)?;
273+
}
274+
writeln!(out, "|")?;
275+
}
236276
}
237-
}
238277

239-
PassWhere::BeforeLocation(_) => {}
278+
PassWhere::BeforeLocation(_) => {}
240279

241-
PassWhere::AfterTerminator(_) => {}
280+
PassWhere::AfterTerminator(_) => {}
242281

243-
PassWhere::BeforeBlock(_) | PassWhere::AfterLocation(_) | PassWhere::AfterCFG => {}
244-
}
245-
Ok(())
246-
});
282+
PassWhere::BeforeBlock(_) | PassWhere::AfterLocation(_) | PassWhere::AfterCFG => {}
283+
}
284+
Ok(())
285+
},
286+
options,
287+
);
247288

248-
// Also dump the inference graph constraints as a graphviz file.
289+
// Also dump the region constraint graph as a graphviz file.
249290
let _: io::Result<()> = try {
250-
let mut file = create_dump_file(infcx.tcx, "regioncx.all.dot", false, "nll", &0, body)?;
291+
let mut file = create_dump_file(tcx, "regioncx.all.dot", false, "nll", &0, body)?;
251292
regioncx.dump_graphviz_raw_constraints(&mut file)?;
252293
};
253294

254-
// Also dump the inference graph constraints as a graphviz file.
295+
// Also dump the region constraint SCC graph as a graphviz file.
255296
let _: io::Result<()> = try {
256-
let mut file = create_dump_file(infcx.tcx, "regioncx.scc.dot", false, "nll", &0, body)?;
297+
let mut file = create_dump_file(tcx, "regioncx.scc.dot", false, "nll", &0, body)?;
257298
regioncx.dump_graphviz_scc_constraints(&mut file)?;
258299
};
259300
}

compiler/rustc_borrowck/src/path_utils.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rustc_data_structures::graph::dominators::Dominators;
22
use rustc_middle::mir::{BasicBlock, Body, BorrowKind, Location, Place, PlaceRef, ProjectionElem};
33
use rustc_middle::ty::TyCtxt;
44
use rustc_target::abi::FieldIdx;
5+
use tracing::debug;
56

67
use crate::borrow_set::{BorrowData, BorrowSet, TwoPhaseActivation};
78
use crate::{places_conflict, AccessDepth, BorrowIndex};

compiler/rustc_borrowck/src/place_ext.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rustc_hir as hir;
22
use rustc_macros::extension;
33
use rustc_middle::mir::{Body, Mutability, Place, ProjectionElem};
44
use rustc_middle::ty::{self, TyCtxt};
5+
use tracing::debug;
56

67
use crate::borrow_set::LocalsStateAtExit;
78

compiler/rustc_borrowck/src/places_conflict.rs

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ use rustc_middle::mir::{
5959
Body, BorrowKind, FakeBorrowKind, MutBorrowKind, Place, PlaceElem, PlaceRef, ProjectionElem,
6060
};
6161
use rustc_middle::ty::{self, TyCtxt};
62+
use tracing::{debug, instrument};
6263

6364
use crate::{AccessDepth, ArtificialField, Deep, Overlap, Shallow};
6465

compiler/rustc_borrowck/src/polonius/loan_invalidations.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use rustc_middle::mir::{
77
TerminatorKind,
88
};
99
use rustc_middle::ty::TyCtxt;
10+
use tracing::debug;
1011

1112
use crate::borrow_set::BorrowSet;
1213
use crate::facts::AllFacts;

compiler/rustc_borrowck/src/polonius/loan_kills.rs

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use rustc_middle::mir::{
44
Terminator, TerminatorKind,
55
};
66
use rustc_middle::ty::TyCtxt;
7+
use tracing::debug;
78

89
use crate::borrow_set::BorrowSet;
910
use crate::facts::AllFacts;

compiler/rustc_borrowck/src/polonius/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use rustc_middle::mir::{Body, LocalKind, Location, START_BLOCK};
77
use rustc_middle::ty::TyCtxt;
88
use rustc_mir_dataflow::move_paths::{InitKind, InitLocation, MoveData};
9+
use tracing::debug;
910

1011
use crate::borrow_set::BorrowSet;
1112
use crate::facts::{AllFacts, PoloniusRegionVid};

compiler/rustc_borrowck/src/region_infer/graphviz.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
4646
dot::render(&RawConstraints { regioncx: self }, &mut w)
4747
}
4848

49-
/// Write out the region constraint graph.
49+
/// Write out the region constraint SCC graph.
5050
pub(crate) fn dump_graphviz_scc_constraints(&self, mut w: &mut dyn Write) -> io::Result<()> {
5151
let mut nodes_per_scc: IndexVec<ConstraintSccIndex, _> =
5252
self.constraint_sccs.all_sccs().map(|_| Vec::new()).collect();

compiler/rustc_borrowck/src/region_infer/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use rustc_middle::traits::{ObligationCause, ObligationCauseCode};
2121
use rustc_middle::ty::{self, RegionVid, Ty, TyCtxt, TypeFoldable, UniverseIndex};
2222
use rustc_mir_dataflow::points::DenseLocationMap;
2323
use rustc_span::Span;
24+
use tracing::{debug, instrument, trace};
2425

2526
use crate::constraints::graph::{self, NormalConstraintGraph, RegionGraph};
2627
use crate::constraints::{ConstraintSccIndex, OutlivesConstraint, OutlivesConstraintSet};

compiler/rustc_borrowck/src/region_infer/opaque_types.rs

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use rustc_middle::ty::{
1313
use rustc_span::Span;
1414
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
1515
use rustc_trait_selection::traits::ObligationCtxt;
16+
use tracing::{debug, instrument};
1617

1718
use super::RegionInferenceContext;
1819
use crate::session_diagnostics::{LifetimeMismatchOpaqueParam, NonGenericOpaqueTypeParam};

compiler/rustc_borrowck/src/region_infer/values.rs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use rustc_index::Idx;
88
use rustc_middle::mir::{BasicBlock, Location};
99
use rustc_middle::ty::{self, RegionVid};
1010
use rustc_mir_dataflow::points::{DenseLocationMap, PointIndex};
11+
use tracing::debug;
1112

1213
use crate::BorrowIndex;
1314

compiler/rustc_borrowck/src/renumber.rs

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use rustc_middle::mir::visit::{MutVisitor, TyContext};
44
use rustc_middle::mir::{Body, ConstOperand, Location, Promoted};
55
use rustc_middle::ty::{self, GenericArgsRef, Ty, TyCtxt, TypeFoldable};
66
use rustc_span::Symbol;
7+
use tracing::{debug, instrument};
78

89
use crate::BorrowckInferCtxt;
910

compiler/rustc_borrowck/src/type_check/canonical.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use rustc_span::Span;
1010
use rustc_trait_selection::traits::query::type_op::custom::CustomTypeOp;
1111
use rustc_trait_selection::traits::query::type_op::{self, TypeOpOutput};
1212
use rustc_trait_selection::traits::ObligationCause;
13+
use tracing::{debug, instrument};
1314

1415
use super::{Locations, NormalizeLocation, TypeChecker};
1516
use crate::diagnostics::ToUniverseInfo;

compiler/rustc_borrowck/src/type_check/constraint_conversion.rs

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use rustc_span::Span;
1313
use rustc_trait_selection::traits::query::type_op::custom::CustomTypeOp;
1414
use rustc_trait_selection::traits::query::type_op::{TypeOp, TypeOpOutput};
1515
use rustc_trait_selection::traits::ScrubbedTraitError;
16+
use tracing::{debug, instrument};
1617

1718
use crate::constraints::OutlivesConstraint;
1819
use crate::region_infer::TypeTest;

compiler/rustc_borrowck/src/type_check/free_region_relations.rs

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use rustc_span::{ErrorGuaranteed, Span};
1515
use rustc_trait_selection::error_reporting::InferCtxtErrorExt;
1616
use rustc_trait_selection::solve::deeply_normalize;
1717
use rustc_trait_selection::traits::query::type_op::{self, TypeOp};
18+
use tracing::{debug, instrument};
1819
use type_op::TypeOpOutput;
1920

2021
use crate::type_check::{constraint_conversion, Locations, MirTypeckRegionConstraints};

0 commit comments

Comments
 (0)