First steps of late-bound turbofishing (place FnDef behind a dummy binder)#158632
Conversation
|
Thanks for the pull request, and welcome! The Rust Project is excited to review your changes, and you should hear from @oli-obk (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
|
There was a problem hiding this comment.
this change has nothing to do with LLVM and as such should probably not have A-LLVM
|
this PR probably shouldn't have as many tags as it does (A-LLVM, PG-exploit-mitigations, T-clippy, WG-trait-system-refactor) |
|
@rustbot review |
|
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Requested reviewer is already assigned to this pull request. Please choose another assignee. |
This comment has been minimized.
This comment has been minimized.
aba7ff3 to
403a9d1
Compare
|
Some changes occurred to the CTFE / Miri interpreter cc @rust-lang/miri Some changes occurred to the CTFE machinery Some changes occurred to constck cc @fee1-dead changes to the core type system cc @lcnr Some changes occurred in compiler/rustc_sanitizers cc @rcvalle Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt
cc @rust-lang/clippy This PR changes rustc_public cc @oli-obk, @celinval, @ouz-a, @makai410
cc @bjorn3 Some changes occurred in match checking cc @Nadrieril HIR ty lowering was modified cc @fmease Some changes occurred in match lowering cc @Nadrieril |
|
i think that should do it? |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Needs a rebase |
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
And a properly named commit message 😅 |
|
@bors r+ |
First steps of late-bound turbofishing (place FnDef behind a dummy binder) r? oli-obk This PR is part of rust-lang#156581. This should be functionally identical to prior behavior, with the added fact that FnDef now places its arguments behind a binder. most changes boil down to - replacing `args` from `FnDef` with `args.no_bound_vars().unwrap()` - replacing `Ty::new_fn_def(/* ... */, args)` with `Ty::new_fn_def(/* ... */, ty::Binder::dummy(args))`
…uwer Rollup of 13 pull requests Successful merges: - #159039 (resolve: fix effective visibilities for items in ambiguous glob sets) - #157706 (Deny `todo!()` in tidy) - #156712 (Pointer authentication config and user facing options) - #158535 (Support `#[track_caller]` on EII declarations) - #158632 (First steps of late-bound turbofishing (place FnDef behind a dummy binder)) - #159002 (Small refactorings in `need_type_info` module) - #159202 (Bump rustc-demangle to 0.1.28) - #159216 (Avoid using probe self_ty for delegation arguments) - #159222 (semicolon_in_expressions_from_macros: Lint on non-local macros too) - #156609 (Consider structurally impossible Sized predicates in MIR) - #158854 (Add `#[rustc_test_entrypoint_marker]`) - #158998 (Some minor ast validation and visiting cleanups) - #159123 (doc: clarify attr parser APIs)
First steps of late-bound turbofishing (place FnDef behind a dummy binder) r? oli-obk This PR is part of rust-lang#156581. This should be functionally identical to prior behavior, with the added fact that FnDef now places its arguments behind a binder. most changes boil down to - replacing `args` from `FnDef` with `args.no_bound_vars().unwrap()` - replacing `Ty::new_fn_def(/* ... */, args)` with `Ty::new_fn_def(/* ... */, ty::Binder::dummy(args))`
…uwer Rollup of 14 pull requests Successful merges: - #159039 (resolve: fix effective visibilities for items in ambiguous glob sets) - #157706 (Deny `todo!()` in tidy) - #158535 (Support `#[track_caller]` on EII declarations) - #158632 (First steps of late-bound turbofishing (place FnDef behind a dummy binder)) - #158846 (Fix unused variable warnings for diverging expressions) - #159002 (Small refactorings in `need_type_info` module) - #159202 (Bump rustc-demangle to 0.1.28) - #159216 (Avoid using probe self_ty for delegation arguments) - #159222 (semicolon_in_expressions_from_macros: Lint on non-local macros too) - #156609 (Consider structurally impossible Sized predicates in MIR) - #157993 (Expose more info about ADTs and functions in rustc_public) - #158854 (Add `#[rustc_test_entrypoint_marker]`) - #158998 (Some minor ast validation and visiting cleanups) - #159123 (doc: clarify attr parser APIs)
First steps of late-bound turbofishing (place FnDef behind a dummy binder) r? oli-obk This PR is part of rust-lang#156581. This should be functionally identical to prior behavior, with the added fact that FnDef now places its arguments behind a binder. most changes boil down to - replacing `args` from `FnDef` with `args.no_bound_vars().unwrap()` - replacing `Ty::new_fn_def(/* ... */, args)` with `Ty::new_fn_def(/* ... */, ty::Binder::dummy(args))`
…uwer Rollup of 15 pull requests Successful merges: - #159039 (resolve: fix effective visibilities for items in ambiguous glob sets) - #157706 (Deny `todo!()` in tidy) - #156047 (Fix trait method resolution on an adjusted never type) - #158535 (Support `#[track_caller]` on EII declarations) - #158632 (First steps of late-bound turbofishing (place FnDef behind a dummy binder)) - #158846 (Fix unused variable warnings for diverging expressions) - #159002 (Small refactorings in `need_type_info` module) - #159202 (Bump rustc-demangle to 0.1.28) - #159216 (Avoid using probe self_ty for delegation arguments) - #156609 (Consider structurally impossible Sized predicates in MIR) - #157993 (Expose more info about ADTs and functions in rustc_public) - #158804 (Clarify `as_uninit_mut` may point to uninitialized memory) - #158854 (Add `#[rustc_test_entrypoint_marker]`) - #158998 (Some minor ast validation and visiting cleanups) - #159123 (doc: clarify attr parser APIs)
…uwer Rollup of 13 pull requests Successful merges: - #157706 (Deny `todo!()` in tidy) - #158535 (Support `#[track_caller]` on EII declarations) - #158632 (First steps of late-bound turbofishing (place FnDef behind a dummy binder)) - #158846 (Fix unused variable warnings for diverging expressions) - #159002 (Small refactorings in `need_type_info` module) - #159202 (Bump rustc-demangle to 0.1.28) - #159216 (Avoid using probe self_ty for delegation arguments) - #156609 (Consider structurally impossible Sized predicates in MIR) - #157993 (Expose more info about ADTs and functions in rustc_public) - #158804 (Clarify `as_uninit_mut` may point to uninitialized memory) - #158854 (Add `#[rustc_test_entrypoint_marker]`) - #158998 (Some minor ast validation and visiting cleanups) - #159123 (doc: clarify attr parser APIs)
Rollup merge of #158632 - addiesh:superfisher, r=oli-obk First steps of late-bound turbofishing (place FnDef behind a dummy binder) r? oli-obk This PR is part of #156581. This should be functionally identical to prior behavior, with the added fact that FnDef now places its arguments behind a binder. most changes boil down to - replacing `args` from `FnDef` with `args.no_bound_vars().unwrap()` - replacing `Ty::new_fn_def(/* ... */, args)` with `Ty::new_fn_def(/* ... */, ty::Binder::dummy(args))`
View all comments
r? oli-obk
This PR is part of #156581. This should be functionally identical to prior behavior, with the added fact that FnDef now places its arguments behind a binder.
most changes boil down to
argsfromFnDefwithargs.no_bound_vars().unwrap()Ty::new_fn_def(/* ... */, args)withTy::new_fn_def(/* ... */, ty::Binder::dummy(args))