diff options
author | bors <bors@rust-lang.org> | 2022-11-06 17:48:33 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2022-11-06 17:48:33 +0000 |
commit | 7eef946fc0e0eff40e588eab77b09b287accbec3 (patch) | |
tree | 3c9fa64a5180e9c7e8ac7950c96ff3e32b169b94 /tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs | |
parent | 1e1e5b8d98750a162335f64ec3c792ce80c9866c (diff) | |
parent | ff8f84ccf6b208e41713da911333f20676472a48 (diff) | |
download | rust-7eef946fc0e0eff40e588eab77b09b287accbec3.tar.gz |
Auto merge of #99943 - compiler-errors:tuple-trait, r=jackh726
Implement `std::marker::Tuple`, use it in `extern "rust-call"` and `Fn`-family traits
Implements rust-lang/compiler-team#537
I made a few opinionated decisions in this implementation, specifically:
1. Enforcing `extern "rust-call"` on fn items during wfcheck,
2. Enforcing this for all functions (not just ones that have bodies),
3. Gating this `Tuple` marker trait behind its own feature, instead of grouping it into (e.g.) `unboxed_closures`.
Still needing to be done:
1. Enforce that `extern "rust-call"` `fn`-ptrs are well-formed only if they have 1/2 args and the second one implements `Tuple`. (Doing this would fix ICE in #66696.)
2. Deny all explicit/user `impl`s of the `Tuple` trait, kinda like `Sized`.
3. Fixing `Tuple` trait built-in impl for chalk, so that chalkification tests are un-broken.
Open questions:
1. Does this need t-lang or t-libs signoff?
Fixes #99820
Diffstat (limited to 'tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs')
0 files changed, 0 insertions, 0 deletions