rust/compiler/rustc_trait_selection/src/traits
bors 7eef946fc0 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
2022-11-06 17:48:33 +00:00
..
error_reporting Bless chalk tests 2022-11-05 18:05:44 +00:00
query Delay ambiguity span bug in normalize query iff not rustdoc 2022-10-21 18:53:16 +00:00
select Auto merge of #103975 - oli-obk:tracing, r=jackh726 2022-11-06 02:21:34 +00:00
specialize Make overlapping_impls non-generic 2022-10-13 14:54:48 -05:00
auto_trait.rs Fix compiler docs 2022-10-10 18:28:29 +02:00
chalk_fulfill.rs Remove TypeckResults from InferCtxt 2022-10-07 07:06:19 -05:00
codegen.rs Change InferCtxtBuilder from enter to build 2022-10-07 07:10:40 -05:00
coherence.rs Auto merge of #102931 - camsteffen:inline-overlapping-impls, r=cjgillot 2022-10-16 02:05:30 +00:00
const_evaluatable.rs avoid unnecessary &str to String conversions 2022-10-29 17:14:44 +09:00
engine.rs remove _types from ocx method names 2022-10-27 15:43:37 +00:00
fulfill.rs change ConstEvaluatable to use ty::Const 2022-10-18 16:09:04 +02:00
misc.rs Change InferCtxtBuilder from enter to build 2022-10-07 07:10:40 -05:00
mod.rs Auto merge of #103861 - compiler-errors:codegen-select-in-vtable-slot, r=nagisa 2022-11-06 14:03:59 +00:00
object_safety.rs stop folding UnevaluatedConst 2022-10-19 10:15:46 +02:00
on_unimplemented.rs Cleanups 2022-11-03 18:52:16 +00:00
outlives_bounds.rs Use TraitEngine less 2022-11-02 04:11:05 +00:00
project.rs Refactor tcx mk_const parameters. 2022-11-04 20:33:32 +00:00
relationships.rs Remove TypeckResults from InferCtxt 2022-10-07 07:06:19 -05:00
structural_match.rs Change InferCtxtBuilder from enter to build 2022-10-07 07:10:40 -05:00
util.rs Don't call own_existential_vtable_entries on unresolved trait ref 2022-10-19 17:11:40 +00:00
wf.rs Rename some OwnerId fields. 2022-10-29 20:28:38 +11:00