diff options
| author | bors <bors@rust-lang.org> | 2023-03-31 18:04:12 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-03-31 18:04:12 +0000 |
| commit | 6a6a262f7b4600c3101b52a1aebc89618d764da3 (patch) | |
| tree | 2834d0224de5b81378eb93ff9199edb519ea9790 /tests/mir-opt/lower_array_len.array_bound_mut.NormalizeArrayLen.panic-unwind.diff | |
| parent | 3c964ea46c1d91831d656c200cb63195126a94c1 (diff) | |
| parent | fc6262fa0c0cd9bd3e32b3db4f3df5c268acf291 (diff) | |
| download | rust-6a6a262f7b4600c3101b52a1aebc89618d764da3.tar.gz rust-6a6a262f7b4600c3101b52a1aebc89618d764da3.zip | |
Auto merge of #109010 - compiler-errors:rtn, r=eholk
Initial support for return type notation (RTN)
See: https://smallcultfollowing.com/babysteps/blog/2023/02/13/return-type-notation-send-bounds-part-2/
1. Only supports `T: Trait<method(): Send>` style bounds, not `<T as Trait>::method(): Send`. Checking validity and injecting an implicit binder for all of the late-bound method generics is harder to do for the latter.
* I'd add this in a follow-up.
3. ~Doesn't support RTN in general type position, i.e. no `let x: <T as Trait>::method() = ...`~
* I don't think we actually want this.
5. Doesn't add syntax for "eliding" the function args -- i.e. for now, we write `method(): Send` instead of `method(..): Send`.
* May be a hazard if we try to add it in the future. I'll probably add it in a follow-up later, with a structured suggestion to change `method()` to `method(..)` once we add it.
7. ~I'm not in love with the feature gate name 😺~
* I renamed it to `return_type_notation` :heavy_check_mark:
Follow-up PRs will probably add support for `where T::method(): Send` bounds. I'm not sure if we ever want to support return-type-notation in arbitrary type positions. I may also make the bounds require `..` in the args list later.
r? `@ghost`
Diffstat (limited to 'tests/mir-opt/lower_array_len.array_bound_mut.NormalizeArrayLen.panic-unwind.diff')
0 files changed, 0 insertions, 0 deletions
