[SAOC 2025] Separate Semantic Routines from AST Nodes Weekly Update #6
Mohamed El Shorbagy
mohrizq895 at gmail.com
Mon Oct 27 17:59:23 UTC 2025
# Summary of Progress (October 20 - October 27)
This week is a continuation of the work done to break the
dependency of `dmd/mtype.d` on semantic functions. `mtype.d` (as
we speak) is essentially dependent on three semantic files:
`dsymbolsem`, `enumsem`, and `typesem`. The first two are almost
trivial (one function is imported from each) and they have
already been eliminated in the following PRs:
- (Merged) [Move `Type.hasInvariant` to
`typesem`](https://github.com/dlang/dmd/pull/22018).
- (Merged) [Move `Type.hasVoidInitPointers` to
`typesem`](https://github.com/dlang/dmd/pull/22023).
- (Merged) [Move `Type.alignment` to
`typesem`](https://github.com/dlang/dmd/pull/22024)
- (Open) [Break semantic dependency of `mtype` on
`dsymbolsem`](https://github.com/dlang/dmd/pull/22031)
- (Open) [Break semantic dependency of `mtype` on
`enumsem`](https://github.com/dlang/dmd/pull/22032).
The final dependency (on `typesem`) is tricky not in the
complexity of the refactoring but in the number of changes
needed. The work has already started with moving the static
function `Type._init` to `typesem` (see [Merged
PR](https://github.com/dlang/dmd/pull/22025)) and I should
continue eliminating the rest of imports over the course of the
next week or so.
More information about the Digitalmars-d
mailing list