1
Fork 0
Empowering everyone to build reliable and efficient software. Gabriel's commits. https://www.rust-lang.org/
Find a file
Guillaume Gomez 1b08d1a92c
Rollup merge of #121702 - compiler-errors:coerce-alias-relate, r=lcnr
Process alias-relate obligations in CoerceUnsized loop

After #119106, we now emit `AliasRelate` goals when relating `?0` and `Alias<T, ..>` in the new solver. In the ad-hoc `CoerceUnsized` selection loop, we now may have `AliasRelate` goals which must be processed to constrain type variables which are mentioned in other goals.

---

For example, in the included test, we try to coerce `&<ManuallyDrop<T> as Deref>::Target` to `&dyn Foo`. This requires proving:
* 1 `&<ManuallyDrop<T> as Deref>::Target: CoerceUnsized<&dyn Foo>`
    * 2 `<ManuallyDrop<T> as Deref>::Target alias-relate ?0`
    * 3 `?0: Unsize<dyn Foo>`
        * 4 `?0: Foo`
        * 5 `?0: Sized`

If we don't process goal (2.) before processing goal (3.), then we hit ambiguity since `?0` is never constrained, and therefore we bail out, refusing to coerce the types. After processing (2.), we know `?0 := T`, and the rest of the goals can be processed normally.
2024-02-28 16:04:54 +01:00
.github Auto merge of #121182 - majaha:mingw_ci_new, r=Mark-Simulacrum 2024-02-25 21:10:15 +00:00
.reuse update license reference 2024-02-16 12:10:49 +01:00
compiler Rollup merge of #121702 - compiler-errors:coerce-alias-relate, r=lcnr 2024-02-28 16:04:54 +01:00
library Rollup merge of #121691 - janstarke:handle-missing-creation-time-as-unsupported, r=cuviper 2024-02-28 16:04:53 +01:00
LICENSES Add missing CC-BY-SA-4.0. 2023-11-27 11:03:53 +00:00
src Rollup merge of #121680 - GuillaumeGomez:foreign-macro-jump-to-def, r=notriddle 2024-02-28 16:04:52 +01:00
tests Rollup merge of #121702 - compiler-errors:coerce-alias-relate, r=lcnr 2024-02-28 16:04:54 +01:00
.editorconfig
.git-blame-ignore-revs Ignore compiletest test directive migration commits 2024-02-22 18:55:02 +00:00
.gitattributes
.gitignore
.gitmodules Update to LLVM 18 2024-02-13 10:33:40 +01:00
.mailmap correct my mailmap entry 2024-01-21 20:47:26 -05:00
Cargo.lock Rollup merge of #121695 - oli-obk:split_ty_utils, r=compiler-errors 2024-02-28 16:04:53 +01:00
Cargo.toml lower bstr version requirement to 1.6.0 2024-02-27 13:34:01 +00:00
CODE_OF_CONDUCT.md
config.example.toml Add rust.frame-pointers config option 2024-02-18 22:23:09 +01:00
configure Ensure ./configure works when configure.py path contains spaces 2024-02-16 18:57:22 +00:00
CONTRIBUTING.md
COPYRIGHT
INSTALL.md Update INSTALL.md instructions for MinGW 2024-02-16 11:19:39 +00:00
LICENSE-APACHE
LICENSE-MIT
README.md Update Readme 2024-01-15 13:57:29 -08:00
RELEASES.md Remove duplicate release note 2024-02-09 12:31:32 -05:00
rust-bors.toml
rustfmt.toml rustfmt.toml: don't ignore just any tests path, only root one 2024-01-11 14:59:59 +03:00
triagebot.toml Pause PR assignments for xFrednet :) 2024-02-25 10:18:55 +01:00
x
x.ps1 use & instead of start-process in x.ps1 2023-12-09 09:46:16 -05:00
x.py

The Rust Programming Language

Rust Community

This is the main source code repository for Rust. It contains the compiler, standard library, and documentation.

Note: this README is for users rather than contributors. If you wish to contribute to the compiler, you should read CONTRIBUTING.md instead.

Table of Contents

Quick Start

Read "Installation" from The Book.

Installing from Source

If you really want to install from source (though this is not recommended), see INSTALL.md.

Getting Help

See https://www.rust-lang.org/community for a list of chat platforms and forums.

Contributing

See CONTRIBUTING.md.

License

Rust is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.

Trademark

The Rust Foundation owns and protects the Rust and Cargo trademarks and logos (the "Rust Trademarks").

If you want to use these names or brands, please read the media guide.

Third-party logos may be subject to third-party copyrights and trademarks. See Licenses for details.