Skip to content

Support extension modifier on children declarations#1117

Merged
mbouaziz merged 1 commit intomainfrom
extension-children
Mar 9, 2026
Merged

Support extension modifier on children declarations#1117
mbouaziz merged 1 commit intomainfrom
extension-children

Conversation

@mbouaziz
Copy link
Contributor

@mbouaziz mbouaziz commented Feb 24, 2026

Summary

  • Implements Feature request: extension children #1017: adds extension modifier support on children declarations
  • Per-child syntax: | extension A marks individual children as extension classes
  • Blanket syntax: extension children = | A | B marks all children as extension classes

Changes

  • AST: Added chi_extension: ?FileRange to Child
  • Parse tree: Added extension field to ChildClassTree, modifiers field to ChildrenTree
  • Parser: Recognizes extension as a class member modifier, allows it on children and individual child classes
  • Conversion: Propagates per-child and blanket extension to AST
  • Expand: Passes chi_extension through to desugared Class_def
  • Printer/skfmt: Prints extension on children and child classes

Test plan

  • New test extension_children_per_child — validates | extension A() syntax
  • New test extension_children_blanket — validates extension children = syntax
  • Updated modifier_children error test — error message now says "Only 'extension' modifier is permitted"
  • All 1702 existing tests pass

🤖 Generated with Claude Code

Fix #1017

Add two new syntactic forms for declaring extension children:
- Per-child: `| extension A` marks individual children as extension classes
- Blanket: `extension children = | A | B` marks all children as extension

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mbouaziz mbouaziz force-pushed the extension-children branch from f938c35 to 0e76d07 Compare March 9, 2026 08:59
@mbouaziz mbouaziz enabled auto-merge March 9, 2026 08:59
@mbouaziz mbouaziz merged commit 68e35e2 into main Mar 9, 2026
3 of 4 checks passed
@mbouaziz mbouaziz deleted the extension-children branch March 9, 2026 09:01
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.

Feature request: extension children

1 participant