rust/compiler/rustc_typeck
ThePuzzlemaker 734209ed73
Normalize assoc types when checking ret ty of main
This fixes #88609.

Previously, the return type of `fn main()` would not have any associated
type projections within normalized before checking if it implements the
standard library trait `std::process::Termination`. This commit appears
to fix it.

This feels vaguely symptomatic of a problem in the underlying trait
solving engine, but I am not sure how I would solve that. I am unsure
why the example in #88609 with `assert_impl_termination` and `fn foo()`
work, but simply `fn main()` doesn't. The way that I solved this is also
probably not the best way to do this, so please let me know if there is
a better way to do this.

I have added a build-pass regression test for this issue.
2021-09-06 16:30:44 -05:00
..
src Normalize assoc types when checking ret ty of main 2021-09-06 16:30:44 -05:00
Cargo.toml Warn when [T; N].into_iter() is ambiguous in the new edition. 2021-08-30 21:27:31 +02:00
README.md mv compiler to compiler/ 2020-08-30 18:45:07 +03:00

For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.