No need to `validate_alias_bound_self_from_param_env` in `assemble_alias_bound_candidates` We already fully normalize the self type before we reach `assemble_alias_bound_candidates`, so there's no reason to double check that a projection is truly rigid by checking param-env bounds. I think this is also blocked on us making sure to always normalize opaques: #120549. r? lcnr
18 lines
946 B
Rust
18 lines
946 B
Rust
//@ revisions: current next
|
|
//@[next] compile-flags: -Znext-solver
|
|
|
|
fn changer<'a>(mut things: Box<dyn Iterator<Item=&'a mut u8>>) {
|
|
for item in *things { *item = 0 }
|
|
//[current]~^ ERROR the size for values of type
|
|
//[next]~^^ ERROR the trait bound `dyn Iterator<Item = &'a mut u8>: IntoIterator` is not satisfied
|
|
//[next]~| ERROR the type `<dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter` is not well-formed
|
|
//[next]~| ERROR the type `&mut <dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter` is not well-formed
|
|
//[next]~| ERROR the type `Option<<<dyn Iterator<Item = &'a mut u8> as IntoIterator>::IntoIter as Iterator>::Item>` is not well-formed
|
|
//[next]~| ERROR type `<dyn Iterator<Item = &'a mut u8> as IntoIterator>::Item` cannot be dereferenced
|
|
|
|
// FIXME(-Znext-solver): these error messages are horrible and have to be
|
|
// improved before we stabilize the new solver.
|
|
}
|
|
|
|
fn main() {}
|