Rework precise capturing syntax
This commit is contained in:
parent
68bd001c00
commit
b1efe1ab5d
54 changed files with 406 additions and 350 deletions
|
@ -481,9 +481,12 @@ fn sanity_check_found_hidden_type<'tcx>(
|
|||
/// 2. Checking that all lifetimes that are implicitly captured are mentioned.
|
||||
/// 3. Asserting that all parameters mentioned in the captures list are invariant.
|
||||
fn check_opaque_precise_captures<'tcx>(tcx: TyCtxt<'tcx>, opaque_def_id: LocalDefId) {
|
||||
let hir::OpaqueTy { precise_capturing_args, .. } =
|
||||
let hir::OpaqueTy { bounds, .. } =
|
||||
*tcx.hir_node_by_def_id(opaque_def_id).expect_item().expect_opaque_ty();
|
||||
let Some((precise_capturing_args, _)) = precise_capturing_args else {
|
||||
let Some(precise_capturing_args) = bounds.iter().find_map(|bound| match *bound {
|
||||
hir::GenericBound::Use(bounds, ..) => Some(bounds),
|
||||
_ => None,
|
||||
}) else {
|
||||
// No precise capturing args; nothing to validate
|
||||
return;
|
||||
};
|
||||
|
|
|
@ -178,6 +178,9 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
|
|||
lifetime.ident.span,
|
||||
);
|
||||
}
|
||||
hir::GenericBound::Use(..) => {
|
||||
// We don't actually lower `use` into the type layer.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue