-
Notifications
You must be signed in to change notification settings - Fork 0
bevy_ecs regression: normalization where-bounds > alias-bounds #175
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
Comments
at least one of the errors is fn foo<I, B>(x: I)
where
I: IntoIterator,
I::IntoIter: Iterator<Item = ()>,
{
x.into_iter().next();
} or further minimized trait Iterator {
type Item;
}
trait IntoIterator {
type Item;
type IntoIter: Iterator<Item = Self::Item>;
}
fn normalize<I: Iterator<Item = ()>>() {}
fn foo<I>()
where
I: IntoIterator,
I::IntoIter: Iterator<Item = ()>,
{
normalize::<I::IntoIter>();
} |
caused by not preferring where-bounds over alias bounds for projection goals: https://github.com/rust-lang/rust/blob/5961e5ba3daa20d98f549eb9029105ae50c13aed/compiler/rustc_next_trait_solver/src/solve/assembly/mod.rs#L803-L826 we've got have to eat lunch, but the fix for that issue is easy :3 |
caused by rust-lang/rust#139791 afaict. The only remaining issue are 2 variants of this one (and once for each tuple size)
|
the last regressions are intended impl<In, Out, Func, $($param: SystemParam),*> SystemParamFunction<(HasSystemInput, fn(In, $($param,)*) -> Out)> for Func
where
Func: Send + Sync + 'static,
for <'a> &'a mut Func:
FnMut(In, $($param),*) -> Out +
FnMut(In::Param<'_>, $(SystemParamItem<$param>),*) -> Out,
In: SystemInput + 'static,
Out: 'static
{
type In = In;
type Out = Out;
type Param = ($($param,)*);
#[inline]
fn run(&mut self, input: In::Inner<'_>, param_value: SystemParamItem< ($($param,)*)>) -> Out {
fn call_inner<In: SystemInput, Out, $($param,)*>(
mut f: impl FnMut(In::Param<'_>, $($param,)*)->Out,
input: In,
$($param: $param,)*
)->Out{
f(input, $($param,)*)
}
let ($($param,)*) = param_value;
call_inner(self, In::wrap(input), $($param),*)
}
} the call to Open PR in bevyengine/bevy#18840 |
…r=compiler-errors normalize: prefer `ParamEnv` over `AliasBound` candidates cc rust-lang/trait-system-refactor-initiative#175 not the only issue affecting bevy sadly r? `@compiler-errors`
…r=compiler-errors normalize: prefer `ParamEnv` over `AliasBound` candidates cc rust-lang/trait-system-refactor-initiative#175 not the only issue affecting bevy sadly r? ``@compiler-errors``
Rollup merge of rust-lang#139798 - lcnr:where-bounds-gt-alias-bound, r=compiler-errors normalize: prefer `ParamEnv` over `AliasBound` candidates cc rust-lang/trait-system-refactor-initiative#175 not the only issue affecting bevy sadly r? ``@compiler-errors``
…r-errors normalize: prefer `ParamEnv` over `AliasBound` candidates cc rust-lang/trait-system-refactor-initiative#175 not the only issue affecting bevy sadly r? ``@compiler-errors``
Not yet minimized
https://crater-reports.s3.amazonaws.com/pr-133502-1/try%23fa8e241660363f48d64b66b05eea58c93ab828fb/reg/bevy_app-0.16.0-rc.3/log.txt
Tons of ambiguities when building
bevy_ecs
.The text was updated successfully, but these errors were encountered: