Skip to content

Move class family out-of-line into MLIRGenClasses.cpp (§1)#224

Merged
ASDAlexander77 merged 1 commit into
mainfrom
refactor/split-classes
Jul 13, 2026
Merged

Move class family out-of-line into MLIRGenClasses.cpp (§1)#224
ASDAlexander77 merged 1 commit into
mainfrom
refactor/split-classes

Conversation

@ASDAlexander77

Copy link
Copy Markdown
Owner

Summary

§1 TU split — the last big family, same pattern as #217#223.

37 class-machinery methods move from MLIRGenImpl.h into a new MLIRGenClasses.cpp TU: class info/type/storage generation, static fields, member processing, heritage clauses (incl. implements), data/static field members and accessors, constructors (incl. default and static-default), class-new, .size/type-descriptor/type-bitmap statics, instanceOf, interface vtables (mlirGenCreateInterfaceVTableForClass, per-interface definitions), the virtual-table definition, index/method/static-block members, generic-class registration, createGlobalConstructor, and generateConstructorStatements. The mlirGenClassType<T> template stays inline in the header.

  • 2,008 lines out of the header (16,219 → 14,212)
  • Extractor hardening: the first pass swallowed a K&R helper and two method starts — root-caused to method-close detection requiring an exact } line while several bodies end with trailing whitespace after the brace. The close/open matchers are now whitespace-tolerant; this was also the root cause of the two mis-extractions fixed manually in Move function family out-of-line into MLIRGenFunctions.cpp (§1) #223.
  • Verified by multiset reconciliation (old header vs new header + new TU): 9 residual lines, all expected signature transformations; zero body/helper lines lost

Remaining §1: the tail utilities (exports, namespace helpers, lookup accessors) — one final slice.

Test plan

  • Clean rebuild with the new TU layout
  • Multiset reconciliation clean
  • 683/683 ctest tests passed (149 s)

🤖 Generated with Claude Code

37 class-machinery methods (class info/type/storage, static fields,
members, heritage clauses incl. implements, data/static field members,
accessors, constructors incl. defaults, class-new, size/type-descriptor
/bitmap statics, instanceOf, interface vtables, virtual table
definition, index/method/static-block members, generic class
registration, global ctor, constructor statements) move from
MLIRGenImpl.h into a new MLIRGenClasses.cpp TU; the header keeps
declarations. mlirGenClassType<T> template stays inline. 2008 lines
out of the header (16219 -> 14212).

Extractor fix: method-close detection now tolerates trailing
whitespace after the closing brace - the root cause of the two
mis-extractions in the previous slice.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ASDAlexander77 ASDAlexander77 merged commit 089125e into main Jul 13, 2026
2 checks passed
@ASDAlexander77 ASDAlexander77 deleted the refactor/split-classes branch July 13, 2026 10:29
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.

1 participant