You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like the latest nightly rustc overflowed while trying to prove proc_macro2::Group satisfies the Unpin oibit.
Strangely, I couldn't reproduce this by adding justproc-macro2 to a dummy project and building. It needed to be used by another crate (may have something to do with generics or feature flags?).
Documenting proc-macro2 v0.4.30 Checking proc-macro2 v0.4.30...error[E0275]: overflow evaluating the requirement `proc_macro2::Group: std::marker::Unpin` | = help: consider adding a `#![recursion_limit="128"]` attribute to your crate = note: required because it appears within the type `proc_macro2::TokenTree` = note: required because it appears within the type `*const proc_macro2::TokenTree` = note: required because it appears within the type `std::ptr::Unique<proc_macro2::TokenTree>` = note: required because it appears within the type `alloc::raw_vec::RawVec<proc_macro2::TokenTree>` = note: required because it appears within the type `std::vec::Vec<proc_macro2::TokenTree>` = note: required because it appears within the type `proc_macro2::fallback::TokenStream` = note: required because it appears within the type `proc_macro2::imp::TokenStream` = note: required because it appears within the type `proc_macro2::TokenStream` = note: required because it appears within the type `syn::Macro` = note: required because it appears within the type `syn::PatMacro` = note: required because it appears within the type `syn::Pat` = note: required because it appears within the type `(syn::Pat, syn::token::Or)` = note: required because it appears within the type `*const (syn::Pat, syn::token::Or)` = note: required because it appears within the type `std::ptr::Unique<(syn::Pat, syn::token::Or)>` = note: required because it appears within the type `alloc::raw_vec::RawVec<(syn::Pat, syn::token::Or)>` = note: required because it appears within the type `std::vec::Vec<(syn::Pat, syn::token::Or)>` = note: required because it appears within the type `syn::punctuated::Punctuated<syn::Pat, syn::token::Or>` = note: required because it appears within the type `syn::ExprLet` = note: required because it appears within the type `syn::Expr` = note: required because it appears within the type `syn::TypeArray` = note: required because it appears within the type `syn::Type` = note: required because it appears within the type `syn::GenericArgument` = note: required because it appears within the type `(syn::GenericArgument, syn::token::Comma)` = note: required because it appears within the type `*const (syn::GenericArgument, syn::token::Comma)` = note: required because it appears within the type `std::ptr::Unique<(syn::GenericArgument, syn::token::Comma)>` = note: required because it appears within the type `alloc::raw_vec::RawVec<(syn::GenericArgument, syn::token::Comma)>` = note: required because it appears within the type `std::vec::Vec<(syn::GenericArgument, syn::token::Comma)>` = note: required because it appears within the type `syn::punctuated::Punctuated<syn::GenericArgument, syn::token::Comma>` = note: required because it appears within the type `syn::AngleBracketedGenericArguments` = note: required because it appears within the type `syn::PathArguments` = note: required because it appears within the type `syn::PathSegment` = note: required because it appears within the type `(syn::PathSegment, syn::token::Colon2)` = note: required because it appears within the type `*const (syn::PathSegment, syn::token::Colon2)` = note: required because it appears within the type `std::ptr::Unique<(syn::PathSegment, syn::token::Colon2)>` = note: required because it appears within the type `alloc::raw_vec::RawVec<(syn::PathSegment, syn::token::Colon2)>` = note: required because it appears within the type `std::vec::Vec<(syn::PathSegment, syn::token::Colon2)>` = note: required because it appears within the type `syn::punctuated::Punctuated<syn::PathSegment, syn::token::Colon2>` = note: required because it appears within the type `syn::Path` = note: required because it appears within the type `syn::Attribute` = note: required because it appears within the type `*const syn::Attribute` = note: required because it appears within the type `std::ptr::Unique<syn::Attribute>` = note: required because it appears within the type `alloc::raw_vec::RawVec<syn::Attribute>` = note: required because it appears within the type `std::vec::Vec<syn::Attribute>` = note: required because it appears within the type `syn::LifetimeDef` = note: required because it appears within the type `(syn::LifetimeDef, syn::token::Comma)` = note: required because it appears within the type `*const (syn::LifetimeDef, syn::token::Comma)` = note: required because it appears within the type `std::ptr::Unique<(syn::LifetimeDef, syn::token::Comma)>` = note: required because it appears within the type `alloc::raw_vec::RawVec<(syn::LifetimeDef, syn::token::Comma)>` = note: required because it appears within the type `std::vec::Vec<(syn::LifetimeDef, syn::token::Comma)>` = note: required because it appears within the type `syn::punctuated::Punctuated<syn::LifetimeDef, syn::token::Comma>` = note: required because it appears within the type `syn::BoundLifetimes` = note: required because it appears within the type `std::option::Option<syn::BoundLifetimes>` = note: required because it appears within the type `syn::PredicateType` = note: required because it appears within the type `syn::WherePredicate` = note: required because it appears within the type `*const syn::WherePredicate` = note: required because it appears within the type `std::ptr::Unique<syn::WherePredicate>` = note: required because it appears within the type `alloc::raw_vec::RawVec<syn::WherePredicate>` = note: required because it appears within the type `std::vec::Vec<syn::WherePredicate>` = note: required because it appears within the type `std::option::Option<std::vec::Vec<syn::WherePredicate>>` = note: required because it appears within the type `attr::InputClone` = note: required because it appears within the type `std::option::Option<attr::InputClone>` = note: required because it appears within the type `attr::Input` = note: required because it appears within the type `ast::Input<'a>`error: aborting due to previous error
I was able to reproduce this quite reliably by doing the following on my Linux laptop:
$ rustc --versionrustc 1.37.0-nightly (8aa42ed7c 2019-06-24)
$ cargo --versioncargo 1.37.0-nightly (807429e1b 2019-06-11)
$ cd /tmp$cargo new --lib whatever Created library `whatever` package
$ cd whatever
$ cargo add specs Adding specs v0.14.3 to dependencies
$ cargo doc BOOM!!1!
The text was updated successfully, but these errors were encountered:
It looks like the latest nightly
rustc
overflowed while trying to proveproc_macro2::Group
satisfies theUnpin
oibit.Strangely, I couldn't reproduce this by adding just
proc-macro2
to a dummy project and building. It needed to be used by another crate (may have something to do with generics or feature flags?).I was able to reproduce this quite reliably by doing the following on my Linux laptop:
The text was updated successfully, but these errors were encountered: