Closed
Description
Our CI in winit started breaking on nightly recently due to inability of recent rustc nightly to build the https://github.com/madsmtm/objc2 crate, in particular you can look into madsmtm/objc2#432 issue.
Error
The error we get is:
error[E0277]: `<<I as IvarType>::Type as InnerIvarType>::Output` is not an iterator
--> /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.3.0-beta.3.patch-leaks.2/src/declare/ivar_forwarding_impls.rs:165:5
|
165 | fn nth(&mut self, n: usize) -> Option<<<Self as Deref>::Target as Iterator>::Item> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `<<I as IvarType>::Type as InnerIvarType>::Output` is not an iterator
|
= help: the trait `Iterator` is not implemented for `<<I as IvarType>::Type as InnerIvarType>::Output`
note: required for `ivar::Ivar<I>` to implement `Iterator`
--> /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.3.0-beta.3.patch-leaks.2/src/declare/ivar_forwarding_impls.rs:154:19
|
154 | impl<I: IvarType> Iterator for Ivar<I>
| ^^^^^^^^ ^^^^^^^
155 | where
156 | <Self as Deref>::Target: Iterator,
| -------- unsatisfied trait bound introduced here
help: consider further restricting the associated type
|
165 | fn nth(&mut self, n: usize) -> Option<<<Self as Deref>::Target as Iterator>::Item> where <<I as IvarType>::Type as InnerIvarType>::Output: Iterator {
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
error[E0277]: `<<I as IvarType>::Type as InnerIvarType>::Output` is not an iterator
--> /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.3.0-beta.3.patch-leaks.2/src/declare/ivar_forwarding_impls.rs:165:5
|
165 | fn nth(&mut self, n: usize) -> Option<<<Self as Deref>::Target as Iterator>::Item> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `<<I as IvarType>::Type as InnerIvarType>::Output` is not an iterator
|
= help: the trait `Iterator` is not implemented for `<<I as IvarType>::Type as InnerIvarType>::Output`
help: consider further restricting the associated type
|
165 | fn nth(&mut self, n: usize) -> Option<<<Self as Deref>::Target as Iterator>::Item> where <<I as IvarType>::Type as InnerIvarType>::Output: Iterator {
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
I expected to see this happen: it should build.
Instead, this happened: it doesn't build, see above.
Version it worked on
It most recently worked on: rust version 1.69.0-nightly (31f858d 2023-02-28)
Version with regression
rustc --version --verbose
:
rust version 1.70.0-nightly (da7c50c08 2023-03-19)