mirror of
https://github.com/rust-lang/rust-clippy
synced 2025-02-25 11:57:25 +00:00
Implement syntax for `impl Trait` to specify its captures explicitly (`feature(precise_capturing)`) Implements `impl use<'a, 'b, T, U> Sized` syntax that allows users to explicitly list the captured parameters for an opaque, rather than inferring it from the opaque's bounds (or capturing *all* lifetimes under 2024-edition capture rules). This allows us to exclude some implicit captures, so this syntax may be used as a migration strategy for changes due to #117587. We represent this list of captured params as `PreciseCapturingArg` in AST and HIR, resolving them between `rustc_resolve` and `resolve_bound_vars`. Later on, we validate that the opaques only capture the parameters in this list. We artificially limit the feature to *require* mentioning all type and const parameters, since we don't currently have support for non-lifetime bivariant generics. This can be relaxed in the future. We also may need to limit this to require naming *all* lifetime parameters for RPITIT, since GATs have no variance. I have to investigate this. This can also be relaxed in the future. r? `@oli-obk` Tracking issue: - https://github.com/rust-lang/rust/issues/123432 |
||
---|---|---|
.. | ||
ast_utils | ||
mir | ||
ty/type_certainty | ||
ast_utils.rs | ||
attrs.rs | ||
check_proc_macro.rs | ||
comparisons.rs | ||
consts.rs | ||
diagnostics.rs | ||
eager_or_lazy.rs | ||
higher.rs | ||
hir_utils.rs | ||
lib.rs | ||
macros.rs | ||
numeric_literal.rs | ||
paths.rs | ||
ptr.rs | ||
qualify_min_const_fn.rs | ||
source.rs | ||
str_utils.rs | ||
sugg.rs | ||
sym_helper.rs | ||
ty.rs | ||
usage.rs | ||
visitors.rs |