Skip to content

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

Closed
JoshSalway wants to merge 2 commits into2.xfrom
fix/method-only-attributes
Closed

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

Conversation

@JoshSalway
Copy link
Owner

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>
@JoshSalway
Copy link
Owner Author

Moved upstream → laravel#128

@JoshSalway JoshSalway closed this Mar 22, 2026
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