Skip to content

Conversation

compiler-errors
Copy link
Member

Elaborated supertraits should be normalized, since there's no guarantee they don't contain projections 😅

Fixes #104025
r? types

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 6, 2022
@@ -241,9 +242,12 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
if expected_sig.is_none()
&& let ty::PredicateKind::Projection(proj_predicate) = bound_predicate.skip_binder()
{
expected_sig = self.deduce_sig_from_projection(
expected_sig = self.normalize_associated_types_in(
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fold after deduce_sig_from_projection so we only need to normalize the types that end up in the closure sig.

@compiler-errors compiler-errors changed the title Normalize signature when deducing closure signature from supertraits Normalize types when deducing closure signature from supertraits Nov 6, 2022
@lcnr
Copy link
Contributor

lcnr commented Nov 7, 2022

@bors r+

@bors
Copy link
Collaborator

bors commented Nov 7, 2022

📌 Commit 9a1043e has been approved by lcnr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 7, 2022
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 7, 2022
Rollup of 6 pull requests

Successful merges:

 - rust-lang#103757 (Mention const and lifetime parameters in error E0207)
 - rust-lang#103986 (Don't silently eat label before block in block-like expr)
 - rust-lang#104003 (Move some tests to more reasonable directories)
 - rust-lang#104038 (Normalize types when deducing closure signature from supertraits)
 - rust-lang#104052 (Fix `resolution_failure` ICE)
 - rust-lang#104090 (Modify comment syntax error)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit f0bd2cd into rust-lang:master Nov 7, 2022
@rustbot rustbot added this to the 1.67.0 milestone Nov 7, 2022
@compiler-errors compiler-errors deleted the super-norm-closure-sig branch August 11, 2023 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

False E0644 closure/generator type that references itself; new in nightly-2022-11-05
4 participants