Skip to content

Fix crash with method-only attributes on serialized closures#128

Draft
JoshSalway wants to merge 2 commits intolaravel:2.xfrom
JoshSalway:fix/method-only-attributes
Draft

Fix crash with method-only attributes on serialized closures#128
JoshSalway wants to merge 2 commits intolaravel:2.xfrom
JoshSalway:fix/method-only-attributes

Conversation

@JoshSalway
Copy link

Summary

Test plan

  • Added test for #[\Override] attribute on parent method (the exact reproduction case from the issue)
  • Added test verifying attributes that CAN target functions are still preserved
  • Run existing test suite to confirm no regressions

🤖 Generated with Claude Code

JoshSalway and others added 2 commits March 19, 2026 05:10
…ributes

When a closure is created from a class method (e.g. `(new Foo)->bar(...)`),
the method's attributes are inherited by the closure. Attributes that only
target methods (like #[\Override]) would cause a fatal error when the
serialized closure code is evaluated, because PHP rejects them on functions.

This filters out attributes whose target flags don't include TARGET_FUNCTION
before including them in the serialized closure code.

Fixes laravel#110

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link

Thanks for submitting a PR!

Note that draft PRs are not reviewed. If you would like a review, please mark your pull request as ready for review in the GitHub user interface.

Pull requests that are abandoned in draft may be closed due to inactivity.

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

Successfully merging this pull request may close these issues.

Crash with closures created from methods with method-only attributes

1 participant