[PR #548] [MERGED] Fix Linux compilation failing due to infinite recursion #594

Closed
opened 2026-02-28 14:33:34 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jpochyla/psst/pull/548
Author: @itsjunetime
Created: 10/23/2024
Status: Merged
Merged: 10/23/2024
Merged by: @jacksongoode

Base: mainHead: fix_overflowing_requirements_compilation


📝 Commits (1)

  • 0854f2d Fix issue with compilation failing due to infinite recursion when trying to satisfy Send bound

📊 Changes

1 file changed (+1 additions, -1 deletions)

View changed files

📝 psst-gui/src/data/track.rs (+1 -1)

📄 Description

Right now, on current main, I can't compile psst-gui due to an issue with overflowing trait requirements:

error[E0275]: overflow evaluating the requirement `sized_chunks::sized_chunk::Chunk<TrackLines>: std::marker::Sync`
   --> psst-gui/src/ui/search.rs:52:6
    |
52  |     .on_command_async(
    |      ^^^^^^^^^^^^^^^^
    |
    = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`psst_gui`)
    = note: required for `std::sync::Arc<sized_chunks::sized_chunk::Chunk<TrackLines>>` to implement `Send`
note: required because it appears within the type `im::fakepool::Arc<sized_chunks::sized_chunk::Chunk<TrackLines>>`
   --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/im-15.1.0/./src/fakepool.rs:128:19
    |
128 | pub(crate) struct Arc<A>(RArc<A>);
    |                   ^^^
note: required because it appears within the type `im::nodes::rrb::Entry<TrackLines>`
   --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/im-15.1.0/./src/nodes/rrb.rs:162:6
    |
162 | enum Entry<A> {
    |      ^^^^^
note: required because it appears within the type `im::nodes::rrb::Node<TrackLines>`
   --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/im-15.1.0/./src/nodes/rrb.rs:244:19
    |
244 | pub(crate) struct Node<A> {
    |                   ^^^^
note: required because it appears within the type `sized_chunks::types::SizeOdd<im::nodes::rrb::Node<TrackLines>, ()>`
   --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sized-chunks-0.6.5/src/types.rs:36:12
    |
36  | pub struct SizeOdd<A, B> {
    |            ^^^^^^^
note: required because it appears within the type `sized_chunks::types::SizeEven<im::nodes::rrb::Node<TrackLines>, sized_chunks::types::SizeOdd<im::nodes::rrb::Node<TrackLines>, ()>>`
   --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sized-chunks-0.6.5/src/types.rs:28:12
    |
28  | pub struct SizeEven<A, B> {
    |            ^^^^^^^^
note: required because it appears within the type `sized_chunks::types::SizeEven<im::nodes::rrb::Node<TrackLines>, sized_chunks::types::SizeEven<im::nodes::rrb::Node<TrackLines>, sized_chunks::types::SizeOdd<im::nodes::rrb::Node<TrackLines>, ()>>>`

It seems that switching this Vector to an Arc<[]> fixes the compilation issue. It also runs fine and I've verified that I can listen to music and view lyrics and such with this change. I'm not super familiar with druid, so I'm not certain if this Vector is needed for any sort of reactivity or whatever, but it seems to work fine for me.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jpochyla/psst/pull/548 **Author:** [@itsjunetime](https://github.com/itsjunetime) **Created:** 10/23/2024 **Status:** ✅ Merged **Merged:** 10/23/2024 **Merged by:** [@jacksongoode](https://github.com/jacksongoode) **Base:** `main` ← **Head:** `fix_overflowing_requirements_compilation` --- ### 📝 Commits (1) - [`0854f2d`](https://github.com/jpochyla/psst/commit/0854f2d39bf03de37937c8128224fc63fed1d042) Fix issue with compilation failing due to infinite recursion when trying to satisfy Send bound ### 📊 Changes **1 file changed** (+1 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `psst-gui/src/data/track.rs` (+1 -1) </details> ### 📄 Description Right now, on current main, I can't compile `psst-gui` due to an issue with overflowing trait requirements: ```sh error[E0275]: overflow evaluating the requirement `sized_chunks::sized_chunk::Chunk<TrackLines>: std::marker::Sync` --> psst-gui/src/ui/search.rs:52:6 | 52 | .on_command_async( | ^^^^^^^^^^^^^^^^ | = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`psst_gui`) = note: required for `std::sync::Arc<sized_chunks::sized_chunk::Chunk<TrackLines>>` to implement `Send` note: required because it appears within the type `im::fakepool::Arc<sized_chunks::sized_chunk::Chunk<TrackLines>>` --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/im-15.1.0/./src/fakepool.rs:128:19 | 128 | pub(crate) struct Arc<A>(RArc<A>); | ^^^ note: required because it appears within the type `im::nodes::rrb::Entry<TrackLines>` --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/im-15.1.0/./src/nodes/rrb.rs:162:6 | 162 | enum Entry<A> { | ^^^^^ note: required because it appears within the type `im::nodes::rrb::Node<TrackLines>` --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/im-15.1.0/./src/nodes/rrb.rs:244:19 | 244 | pub(crate) struct Node<A> { | ^^^^ note: required because it appears within the type `sized_chunks::types::SizeOdd<im::nodes::rrb::Node<TrackLines>, ()>` --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sized-chunks-0.6.5/src/types.rs:36:12 | 36 | pub struct SizeOdd<A, B> { | ^^^^^^^ note: required because it appears within the type `sized_chunks::types::SizeEven<im::nodes::rrb::Node<TrackLines>, sized_chunks::types::SizeOdd<im::nodes::rrb::Node<TrackLines>, ()>>` --> /home/june/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sized-chunks-0.6.5/src/types.rs:28:12 | 28 | pub struct SizeEven<A, B> { | ^^^^^^^^ note: required because it appears within the type `sized_chunks::types::SizeEven<im::nodes::rrb::Node<TrackLines>, sized_chunks::types::SizeEven<im::nodes::rrb::Node<TrackLines>, sized_chunks::types::SizeOdd<im::nodes::rrb::Node<TrackLines>, ()>>>` ``` It seems that switching this `Vector` to an `Arc<[]>` fixes the compilation issue. It also runs fine and I've verified that I can listen to music and view lyrics and such with this change. I'm not super familiar with `druid`, so I'm not certain if this `Vector` is needed for any sort of reactivity or whatever, but it seems to work fine for me. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-28 14:33:34 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/psst#594
No description provided.