Skip to content

Fix inherited generated class constructor parameters - #1689

Merged
fglock merged 5 commits into
masterfrom
fix/inherited-class-constructor-dispatch-1638
Oct 8, 2026
Merged

fglock merged 5 commits into
masterfrom
fix/inherited-class-constructor-dispatch-1638

Conversation

@fglock

@fglock fglock commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Summary

Fix inherited field initialization when a child class uses a generated constructor. Generated parent constructors now receive only parameters declared by the parent and its ancestors, while child arguments remain available for child field initialization. Custom parent constructors continue to receive the full argument list.

Add permanent coverage for inherited generated constructors, parent and child field initialization, and rejection of unknown parameters.

Closes #1638

Verification

  • System Perl 5.42.2: focused unit test passes
  • PerlOnJava JVM backend: focused unit test passes
  • PerlOnJava interpreter backend: focused unit test passes
  • nice -n 19 make: passes
  • nice -n 19 make check-links: passes

@fglock
fglock force-pushed the fix/inherited-class-constructor-dispatch-1638 branch from a9956d9 to d25a2e0 Compare October 8, 2026 10:57
fglock and others added 4 commits October 8, 2026 12:57
Filter named arguments passed from a generated child constructor to its
 generated parent constructor, while retaining the child's arguments for its
own fields. Preserve all arguments for custom parent constructors and track
constructor metadata with runtime snapshots.

Closes #1638

Generated with [Codex](https://openai.com/codex)
Co-Authored-By: Codex <158243242+chatgpt-codex@users.noreply.github.com>
Preserve blessed IO method lookup and report native socketpair readiness and peer connectivity. Include focused regression coverage before rebasing and completing validation.

Generated with [Codex](https://openai.com/codex)
Co-Authored-By: Codex <158243242+chatgpt-codex@users.noreply.github.com>
Use F_GETFL and F_SETFL for native descriptors in IO::Handle::blocking so socketpair writes correctly reach EAGAIN. Cover the descriptor flag and connected socket send path.

Generated with [Codex](https://openai.com/codex)
Co-Authored-By: Codex <158243242+chatgpt-codex@users.noreply.github.com>
Keep queued IO::Async call futures alive until worker dispatch completes,
register the compatibility patch in CPAN bootstrap, and document the fix.
The upstream t/42function.t queue-priority case failed before the patch and
passes with it applied.

Generated with [Codex](https://openai.com/codex)
Co-Authored-By: Codex <158243242+chatgpt-codex@users.noreply.github.com>
@fglock
fglock force-pushed the fix/inherited-class-constructor-dispatch-1638 branch from d25a2e0 to 23e93dc Compare October 8, 2026 11:22
Route PerlOnJava's Windows sockets through its channel-aware blocking
implementation and keep the native descriptor assertion platform-specific.

Generated with [Codex](https://openai.com/codex)
Co-Authored-By: Codex <158243242+chatgpt-codex@users.noreply.github.com>
@fglock
fglock merged commit 77766d1 into master Oct 8, 2026
2 checks passed
@fglock
fglock deleted the fix/inherited-class-constructor-dispatch-1638 branch October 8, 2026 14:36
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.

Inherited class constructor dispatch uses base fields

1 participant