LowR

Results 5 issues of LowR

Fixes #12739 Chalk solver doesn't sort and deduplicate auto traits in trait object types, so we need to handle them ourselves in the lowering phase, just like [`rustc`](https://github.com/rust-lang/rust/blob/880416180b0a9ee1141c07d4d17667edb77daebd/compiler/rustc_typeck/src/astconv/mod.rs#L1487-L1488) and [`chalk-integration`](https://github.com/rust-lang/chalk/blob/master/chalk-integration/src/lowering.rs#L575)...

Context: https://github.com/rust-lang/rust-analyzer/issues/13169 It seems chalk is unable to deduce projection type of trait object types when it's not specified in `dyn` notation but the trait has supertrait with its projection...

This PR implements basic type inference for generator and yield expressions. Things not included in this PR: - Generator upvars and generator witnesses are not implemented. They are only used...

This PR implements [RFC3324], `dyn Trait` upcasting (cc rust-lang/rust#65991). As explained in the RFC, this PR adds builtin clauses for `Unsize` with applicability checks: ```rust // when Trait2 is a...

Currently, `GenericArgsBinding` is defined as follows ([link](https://doc.rust-lang.org/nightly/reference/paths.html#paths-in-expressions)): ``` GenericArgsBinding : IDENTIFIER = Type ``` This definition does not account for GATs. It should include optional generic arguments after the identifier.

A-grammar