-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nested projection normalization results in ambiguity #13
Comments
Marking this as a "fundamental" issue because we're going to have to hack around it at the solver level, possibly by not preferring alias bounds over impl bounds (or perhaps getting rid of alias bounds altogether) |
i don't think we combine candidates yet until rust-lang/rust#109724 so i think at least this specific case should be fixed with that? |
oh you're right, duh. well glad it's fixed by that. |
@lcnr this doesn't seem to be fixed by your pr |
inside of the Candidate { source: Impl(DefId(2:3663 ~ core[523c]::array::iter::{impl#2})), result: Canonical { value: Response { certainty: Yes, var_values: CanonicalVarValues { var_values: [i32] }, external_constraints: ExternalConstraints(Interned(ExternalConstraintsData { region_constraints: QueryRegionConstraints { outlives: [], member_constraints: [] }, opaque_types: [] }, PrivateZst)) }, max_universe: U0, variables: [] } },
Candidate { source: AliasBound, result: Canonical { value: Response { certainty: Yes, var_values: CanonicalVarValues { var_values: [<[i32; 32] as std::iter::IntoIterator>::Item] }, external_constraints: ExternalConstraints(Interned(ExternalConstraintsData { region_constraints: QueryRegionConstraints { outlives: [], member_constraints: [] }, opaque_types: [] }, PrivateZst)) }, max_universe: U0, variables: [] } }] normalizing to either |
This may be due to us assembling two candidates -- one via the alias bound for
IntoIter
and one via the normalized self type<[i32; 32] as IntoIterator>::IntoIter
which isstd::array::IntoIter<i32, 32>
...I'm surprised we're not combining these because they should have the same constraints -- none at all.
The text was updated successfully, but these errors were encountered: