[package]
name = "foo"
version = "0.0.0"
[dependencies]
syn = { version = "=0.15.38", features = ["full"] }
synstructure = "=0.10.2"
Running rustup run --install nightly-2019-06-21 cargo doc completes successfully, but rustup run --install nightly-2019-06-22 cargo doc causes the error below. Note that cargo build or cargo check succeeds with either version.
error[E0275]: overflow evaluating the requirement `alloc::raw_vec::RawVec<(syn::Lifetime, syn::token::Add)>: std::marker::Unpin`
|
= help: consider adding a `#![recursion_limit="128"]` attribute to your crate
= note: required because it appears within the type `std::vec::Vec<(syn::Lifetime, syn::token::Add)>`
= note: required because it appears within the type `syn::punctuated::Punctuated<syn::Lifetime, syn::token::Add>`
= 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 `(syn::WherePredicate, syn::token::Comma)`
= note: required because it appears within the type `*const (syn::WherePredicate, syn::token::Comma)`
= note: required because it appears within the type `std::ptr::Unique<(syn::WherePredicate, syn::token::Comma)>`
= note: required because it appears within the type `alloc::raw_vec::RawVec<(syn::WherePredicate, syn::token::Comma)>`
= note: required because it appears within the type `std::vec::Vec<(syn::WherePredicate, syn::token::Comma)>`
= note: required because it appears within the type `syn::punctuated::Punctuated<syn::WherePredicate, syn::token::Comma>`
= note: required because it appears within the type `syn::WhereClause`
= note: required because it appears within the type `std::option::Option<syn::WhereClause>`
= note: required because it appears within the type `syn::Generics`
= note: required because it appears within the type `syn::ItemType`
= note: required because it appears within the type `syn::Item`
= note: required because it appears within the type `syn::Stmt`
= note: required because it appears within the type `*const syn::Stmt`
= note: required because it appears within the type `std::ptr::Unique<syn::Stmt>`
= note: required because it appears within the type `alloc::raw_vec::RawVec<syn::Stmt>`
= note: required because it appears within the type `std::vec::Vec<syn::Stmt>`
= note: required because it appears within the type `syn::Block`
= note: required because it appears within the type `syn::ExprIf`
= 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::TypeParam`
= note: required because it appears within the type `syn::GenericParam`
= note: required because it appears within the type `*const syn::GenericParam`
= note: required because it appears within the type `std::ptr::Unique<syn::GenericParam>`
= note: required because it appears within the type `alloc::raw_vec::RawVec<syn::GenericParam>`
= note: required because it appears within the type `std::vec::Vec<syn::GenericParam>`
= note: required because it appears within the type `Structure<'a>`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0275`.
error: Could not document `synstructure`.
In a minified package:
Running
rustup run --install nightly-2019-06-21 cargo doc
completes successfully, butrustup run --install nightly-2019-06-22 cargo doc
causes the error below. Note thatcargo build
orcargo check
succeeds with either version.Regression range: 1d9981f04...929b48ec9. https://github.com/rust-lang/rust/pull/60293 is in the range and looks relevant. CC @nagisa, @eddyb