rust/src
Matthias Krüger 6466f89fc5
Rollup merge of #92248 - compiler-errors:normalize-type-for-pointee, r=jackh726
Normalize struct tail type when checking Pointee trait

Let's go ahead and implement the FIXMEs by properly normalizing the struct-tail type when satisfying a Pointee obligation. This should fix the ICE when we try to calculate a layout depending on `<Ty as Pointee>::Metadata` later.
Fixes #92128
Fixes #92577

Additionally, mark the obligation as ambiguous if there are any infer types in that struct-tail type. This has the effect of causing `<_ as Pointee>::Metadata` to be properly replaced with an infer variable ([here](https://github.com/rust-lang/rust/blob/master/compiler/rustc_trait_selection/src/traits/project.rs#L813)) and registered as an obligation... this turns out to be very important in unifying function parameters with formals that are assoc types.

Fixes #91446
2022-01-10 11:03:03 +01:00
..
bootstrap Rollup merge of #92589 - ChrisDenton:break-loop, r=Mark-Simulacrum 2022-01-06 23:15:20 +01:00
build_helper
ci Switch to es6 for eslint 2022-01-05 11:44:29 -05:00
doc Update books 2022-01-03 19:45:10 -08:00
etc Implement @snapshot check for htmldocck 2021-12-01 15:12:10 -08:00
librustdoc Auto merge of #92690 - matthiaskrgr:rollup-rw0oz05, r=matthiaskrgr 2022-01-09 12:43:37 +00:00
llvm-project@6b3dbcc81a Backport LLVM changes to disable deferred inlining 2021-12-19 23:49:03 +02:00
rustdoc-json-types Moved format-version constant to rustdoc-json-types 2021-10-15 12:27:42 +03:00
test Rollup merge of #92248 - compiler-errors:normalize-type-for-pointee, r=jackh726 2022-01-10 11:03:03 +01:00
tools rustc_metadata: Rename item_children(_untracked) to module_children(_untracked) 2022-01-09 09:22:06 +08:00
README.md
stage0.json Bump bootstrap compiler 2021-11-30 10:44:21 -05:00
version bump version to 1.60.0 2022-01-07 10:04:15 +01:00

This directory contains the source code of the rust project, including:

  • The test suite
  • The bootstrapping build system
  • Various submodules for tools, like rustdoc, rls, etc.

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