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

Make Schedule a fun interface #3504

Merged
merged 6 commits into from
Nov 4, 2024
Merged

Make Schedule a fun interface #3504

merged 6 commits into from
Nov 4, 2024

Conversation

serras
Copy link
Member

@serras serras commented Oct 15, 2024

Fixes #3325
Fixes #3499

It turns out that using a value class containing a function inside is equivalent to having just a fun interface. So I've reworked Schedule in that form, which hopefully should remove the problems we have with inlining. @dave08 @postfixNotation

This change is breaking, but since in 2.0 we only promised source compatibility (and not binary compatibility), this should still be OK.

@serras serras added the 2.0.0 Tickets / PRs belonging to Arrow 2.0 label Oct 15, 2024
@serras serras requested a review from nomisRev October 15, 2024 09:24
@serras serras self-assigned this Oct 15, 2024
@serras
Copy link
Member Author

serras commented Oct 15, 2024

PS: This also updates Kotlin to 2.1.0-Beta2, since 2.0.21 was giving a very weird compiler error.

@serras
Copy link
Member Author

serras commented Oct 15, 2024

It seems that this breaks in Native. The error is now reported in YouTrack

Copy link
Contributor

github-actions bot commented Nov 4, 2024

Kover Report

File Coverage [68.59%]
arrow-libs/resilience/arrow-resilience/src/commonMain/kotlin/arrow/resilience/Schedule.kt 68.59%
Total Project Coverage 46.08%

@serras serras merged commit 20f29ff into main Nov 4, 2024
11 checks passed
@serras serras deleted the serras/schedule-no-value branch November 4, 2024 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.0.0 Tickets / PRs belonging to Arrow 2.0
Projects
None yet
2 participants