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
Hi there, thanks for the amazing work on this library.
I am trying to experiment with processing multiple parsed file trees with syn using rayon, however Span is not Send and I get that it cannot be and I am trying to work on a fork where it is Send. I removed the marker for it:
and I still get the same error that Span is not safe to send over threads. Any ideas as to what I can change to make the types Send? or any available forks already out there which have done this? Would appreciate any help (:
error for context:
error[E0277]: `proc_macro::Span` cannot be sent between threads safely
--> medschool/src/file.rs:68:10
|
68 | .map(|path| {
| ^^^ `proc_macro::Span` cannot be sent between threads safely
|
= help: within `Attribute`, the trait `Send` is not implemented for `proc_macro::Span`, which is required by `Result<syn::File, syn::Error>: Send`
note: required because it appears within the type `proc_macro2::extra::DelimSpanEnum`
--> /Users/mehularora/.cargo/git/checkouts/proc-macro2-b4d7743817db7bf3/1a8ebee/src/extra.rs:88:6
|
88 | enum DelimSpanEnum {
| ^^^^^^^^^^^^^
note: required because it appears within the type `proc_macro2::extra::DelimSpan`
--> /Users/mehularora/.cargo/git/checkouts/proc-macro2-b4d7743817db7bf3/1a8ebee/src/extra.rs:82:12
|
82 | pub struct DelimSpan {
| ^^^^^^^^^
note: required because it appears within the type `syn::token::Bracket`
--> /Users/mehularora/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.61/src/token.rs:842:30
|
842 | Bracket pub struct Bracket /// `[`…`]`
| ^^^^^^^
note: required because it appears within the type `Attribute`
--> /Users/mehularora/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.61/src/attr.rs:173:16
|
173 | pub struct Attribute {
| ^^^^^^^^^
= note: required for `Unique<Attribute>` to implement `Send`
note: required because it appears within the type `alloc::raw_vec::RawVec<Attribute>`
--> /Users/mehularora/.rustup/toolchains/nightly-2024-04-15-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:69:19
|
69 | pub(crate) struct RawVec<T, A: Allocator = Global> {
| ^^^^^^
note: required because it appears within the type `Vec<Attribute>`
--> /Users/mehularora/.rustup/toolchains/nightly-2024-04-15-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:398:12
|
398 | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
| ^^^
note: required because it appears within the type `syn::File`
--> /Users/mehularora/.cargo/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.61/src/file.rs:84:16
|
84 | pub struct File {
| ^^^^
note: required because it appears within the type `Result<syn::File, syn::Error>`
--> /Users/mehularora/.rustup/toolchains/nightly-2024-04-15-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:502:10
|
502 | pub enum Result<T, E> {
| ^^^^^^
note: required by a bound in `rayon::iter::ParallelIterator::map`
--> /Users/mehularora/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.10.0/src/iter/mod.rs:604:12
|
601 | fn map<F, R>(self, map_op: F) -> Map<Self, F>
| --- required by a bound in this associated function
...
604 | R: Send,
| ^^^^ required by this bound in `ParallelIterator::map`
The text was updated successfully, but these errors were encountered:
proc_macro2::Span either contains a proc_macro::Span or it's own type. proc_macro::Span is not thread safe as it references thread local storage, so proc_macro2::Span can't be thread safe either without ripping the entire proc_macro support out.
proc_macro2::Span either contains a proc_macro::Span or it's own type. proc_macro::Span is not thread safe as it references thread local storage, so proc_macro2::Span can't be thread safe either without ripping the entire proc_macro support out.
got it, i already knew about this issue but was wondering if there is a way out. thanks for the response!
Hi there, thanks for the amazing work on this library.
I am trying to experiment with processing multiple parsed file trees with syn using rayon, however
Span
is not Send and I get that it cannot be and I am trying to work on a fork where it isSend
. I removed the marker for it:and I still get the same error that Span is not safe to send over threads. Any ideas as to what I can change to make the types Send? or any available forks already out there which have done this? Would appreciate any help (:
error for context:
The text was updated successfully, but these errors were encountered: