Skip to content
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

Cannot build docs with Rust nightly #2

Closed
paulvt opened this issue Jul 9, 2019 · 3 comments
Closed

Cannot build docs with Rust nightly #2

paulvt opened this issue Jul 9, 2019 · 3 comments

Comments

@paulvt
Copy link

paulvt commented Jul 9, 2019

When generating docs for my Rocket project, Cargo bails out while trying to document the devise crate:

 Documenting devise v0.2.0
error[E0275]: overflow evaluating the requirement `alloc::raw_vec::RawVec<(devise_core::syn::Lifetime, devise_core::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<(devise_core::syn::Lifetime, devise_core::syn::token::Add)>`
  = note: required because it appears within the type `devise_core::syn::punctuated::Punctuated<devise_core::syn::Lifetime, devise_core::syn::token::Add>`
  = note: required because it appears within the type `devise_core::syn::LifetimeDef`
  = note: required because it appears within the type `(devise_core::syn::LifetimeDef, devise_core::syn::token::Comma)`
  = note: required because it appears within the type `*const (devise_core::syn::LifetimeDef, devise_core::syn::token::Comma)`
  = note: required because it appears within the type `std::ptr::Unique<(devise_core::syn::LifetimeDef, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<(devise_core::syn::LifetimeDef, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `std::vec::Vec<(devise_core::syn::LifetimeDef, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `devise_core::syn::punctuated::Punctuated<devise_core::syn::LifetimeDef, devise_core::syn::token::Comma>`
  = note: required because it appears within the type `devise_core::syn::BoundLifetimes`
  = note: required because it appears within the type `std::option::Option<devise_core::syn::BoundLifetimes>`
  = note: required because it appears within the type `devise_core::syn::TraitBound`
  = note: required because it appears within the type `devise_core::syn::TypeParamBound`
  = note: required because it appears within the type `(devise_core::syn::TypeParamBound, devise_core::syn::token::Add)`
  = note: required because it appears within the type `*const (devise_core::syn::TypeParamBound, devise_core::syn::token::Add)`
  = note: required because it appears within the type `std::ptr::Unique<(devise_core::syn::TypeParamBound, devise_core::syn::token::Add)>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<(devise_core::syn::TypeParamBound, devise_core::syn::token::Add)>`
  = note: required because it appears within the type `std::vec::Vec<(devise_core::syn::TypeParamBound, devise_core::syn::token::Add)>`
  = note: required because it appears within the type `devise_core::syn::punctuated::Punctuated<devise_core::syn::TypeParamBound, devise_core::syn::token::Add>`
  = note: required because it appears within the type `devise_core::syn::TypeParam`
  = note: required because it appears within the type `devise_core::syn::GenericParam`
  = note: required because it appears within the type `(devise_core::syn::GenericParam, devise_core::syn::token::Comma)`
  = note: required because it appears within the type `*const (devise_core::syn::GenericParam, devise_core::syn::token::Comma)`
  = note: required because it appears within the type `std::ptr::Unique<(devise_core::syn::GenericParam, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<(devise_core::syn::GenericParam, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `std::vec::Vec<(devise_core::syn::GenericParam, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `devise_core::syn::punctuated::Punctuated<devise_core::syn::GenericParam, devise_core::syn::token::Comma>`
  = note: required because it appears within the type `devise_core::syn::Generics`
  = note: required because it appears within the type `devise_core::syn::ItemType`
  = note: required because it appears within the type `devise_core::syn::Item`
  = note: required because it appears within the type `devise_core::syn::Stmt`
  = note: required because it appears within the type `*const devise_core::syn::Stmt`
  = note: required because it appears within the type `std::ptr::Unique<devise_core::syn::Stmt>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<devise_core::syn::Stmt>`
  = note: required because it appears within the type `std::vec::Vec<devise_core::syn::Stmt>`
  = note: required because it appears within the type `devise_core::syn::Block`
  = note: required because it appears within the type `devise_core::syn::ExprIf`
  = note: required because it appears within the type `devise_core::syn::Expr`
  = note: required because it appears within the type `devise_core::syn::TypeArray`
  = note: required because it appears within the type `devise_core::syn::Type`
  = note: required because it appears within the type `devise_core::syn::GenericArgument`
  = note: required because it appears within the type `(devise_core::syn::GenericArgument, devise_core::syn::token::Comma)`
  = note: required because it appears within the type `*const (devise_core::syn::GenericArgument, devise_core::syn::token::Comma)`
  = note: required because it appears within the type `std::ptr::Unique<(devise_core::syn::GenericArgument, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<(devise_core::syn::GenericArgument, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `std::vec::Vec<(devise_core::syn::GenericArgument, devise_core::syn::token::Comma)>`
  = note: required because it appears within the type `devise_core::syn::punctuated::Punctuated<devise_core::syn::GenericArgument, devise_core::syn::token::Comma>`
  = note: required because it appears within the type `devise_core::syn::AngleBracketedGenericArguments`
  = note: required because it appears within the type `devise_core::syn::PathArguments`
  = note: required because it appears within the type `devise_core::syn::PathSegment`
  = note: required because it appears within the type `(devise_core::syn::PathSegment, devise_core::syn::token::Colon2)`
  = note: required because it appears within the type `*const (devise_core::syn::PathSegment, devise_core::syn::token::Colon2)`
  = note: required because it appears within the type `std::ptr::Unique<(devise_core::syn::PathSegment, devise_core::syn::token::Colon2)>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<(devise_core::syn::PathSegment, devise_core::syn::token::Colon2)>`
  = note: required because it appears within the type `std::vec::Vec<(devise_core::syn::PathSegment, devise_core::syn::token::Colon2)>`
  = note: required because it appears within the type `devise_core::syn::punctuated::Punctuated<devise_core::syn::PathSegment, devise_core::syn::token::Colon2>`
  = note: required because it appears within the type `devise_core::syn::Path`
  = note: required because it appears within the type `devise_core::syn::Attribute`
  = note: required because it appears within the type `*const devise_core::syn::Attribute`
  = note: required because it appears within the type `std::ptr::Unique<devise_core::syn::Attribute>`
  = note: required because it appears within the type `alloc::raw_vec::RawVec<devise_core::syn::Attribute>`
  = note: required because it appears within the type `std::vec::Vec<devise_core::syn::Attribute>`
  = note: required because it appears within the type `devise_core::syn::FieldPat`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0275`.
error: Could not document `devise`.

Toolchain information:

> rustc --version && cargo --version
rustc 1.38.0-nightly (6e310f2ab 2019-07-07)
cargo 1.37.0-nightly (4c1fa54d1 2019-06-24)
@jebrosen
Copy link
Collaborator

jebrosen commented Jul 9, 2019

This looks like rust-lang/rust#62059. If you only need to document your own crate, I think cargo doc --no-deps should work around this.

@SergioBenitez
Copy link
Owner

Looks like this might have been fixed in rustdoc? In any case, cargo doc --no-deps works as expected.

@paulvt
Copy link
Author

paulvt commented Sep 11, 2019

I usually prefer to have the docs of all the crates in my entire project so I don't have hunt down specific versions of all crates on docs.rs.
Anyway, it seems fixed in rustdoc itself indeed, thanks for the heads up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants