rust/src
Dylan DPC 6cb13585d0
Rollup merge of #110454 - oli-obk:limited_impl_trait_in_assoc_type, r=compiler-errors
Require impl Trait in associated types to appear in method signatures

This implements the limited version of TAIT that was proposed in https://github.com/rust-lang/rust/issues/107645#issuecomment-1477899536

Similar to `impl Trait` in return types, `impl Trait` in associated types may only be used within the impl block which it is a part of. To make everything simpler and forward compatible to getting desugared to a plain type alias impl trait in the future, we're requiring that any associated functions or constants that want to register hidden types must be using the associated type in their signature (type of the constant or argument/return type of the associated method. Where bounds mentioning the associated type are ignored).

We have preexisting tests checking that this works transitively across multiple associated types in situations like

```rust
impl Foo for Bar {
    type A = impl Trait;
    type B = impl Iterator<Item = Self::A>;
    fn foo() -> Self::B { ...... }
}
```
2023-05-13 11:05:32 +05:30
..
bootstrap run miri tests with MIR opts in rustc CI 2023-05-12 15:07:24 +02:00
ci Update browser-ui-test version to 0.16.0 2023-05-11 11:34:22 +02:00
doc Rollup merge of #111389 - esp-rs:esp-idf-platform-support, r=jyn514 2023-05-11 07:05:28 +02:00
etc Fix unavailable url 2023-04-28 09:54:35 +08:00
librustdoc Require impl Trait in associated types to appear in method signatures 2023-05-12 10:24:03 +00:00
llvm-project@ea6fa9c2d4 Update to LLVM 16.0.2 2023-04-19 12:33:37 +02:00
rustdoc-json-types IAT: Rustdoc integration 2023-05-04 16:59:11 +02:00
tools Auto merge of #111506 - RalfJung:miri, r=oli-obk 2023-05-12 21:49:06 +00:00
README.md Remove stale reference to the test suite location 2023-01-13 11:49:06 +00:00
stage0.json bump stage0 2023-04-28 08:47:55 -07:00
version bump to rust 1.71.0 2023-04-15 12:29:51 +02:00

This directory contains some source code for the Rust project, including:

  • The bootstrapping build system
  • Various submodules for tools, like cargo, tidy, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.