[SAOC 2025] Separate Semantic Routines from AST Nodes Weekly Update #1
Mohamed El Shorbagy
mohrizq895 at gmail.com
Mon Sep 22 17:41:15 UTC 2025
## Summary of progress (September 15 - September 22)
This week, I worked on eliminating some of the semantic function
calls in ast nodes files.
### What I worked on
- Break semantic dependency of `dmd/func.d` on `dmd/dsymbolsem.d`
by eliminating the call of `dmd.dsymbolsem.toParentP` (See
[Merged PR](https://github.com/dlang/dmd/pull/21858/)).
- Move `Dsymbol.overloadInsert` to `dmd/dsymbolsem.d` to
eliminate the call of `dmd.dsymbolsem.aliasSemantic` in
`dmd/dtemplate.d` (See [Merged
PR](https://github.com/dlang/dmd/pull/21877/)).
- Break semantic dependency of `dmd/func.d` on `dmd/funcsem.d` by
moving `Dsymbol.equals` to `dmd/dsymbolsem` to eliminate the call
of `dmd.funcsem.isUnique` (See [Merged
PR](https://github.com/dlang/dmd/pull/21878/)).
- Break semantic dependency of `dmd/aggregate.d` on
`dmd/dsymbolsem.d` by moving `Dsymbol.size` to `dmd/dsymbolsem.d`
to eliminate the call of `dmd.dsymbolsem.determineSize` (See
[Merged PR](https://github.com/dlang/dmd/pull/21881))
- Break semantic dependency of `dmd/declaration.d` on
`dmd/dsymbolsem.d` by moving `Dsymbol.getType` to
`dmd/dsymbolsem.d` to eliminate the call of
`dmd.dsymbolsem.toAlias` and `dmd.typesem.typeSemantic` (See
[Merged PR](github.com/dlang/dmd/pull/21882)).
- Break semantic dependency of `dmd/declaration.d` on
`dmd/typesem.d` by moving `VarDeclaration.isOverlappedWith` to
eliminate the call of `dmd.typesem.size` (See [Merged
PR](https://github.com/dlang/dmd/pull/21885)).
- Break semantic dependency of `dmd/dmodule.d` on
`dmd/dsymbolsem.d` by moving some semantic functions to eliminate
the call of `dmd.dsymbolsem.dsymbolSemantic` (See [Merged
PR](https://github.com/dlang/dmd/pull/21886)).
- Move `Expression.equals` and `Expression.isIdentical` to
`dmd/expressionsem.d` to eliminate the call of
`dmd.typesem.toHeadMutable` (See [Merged
PR](https://github.com/dlang/dmd/pull/21889)).
- Move `TemplateInstance.hasNestedArgs` to `dmd/templatesem.d` to
eliminate the call of `dmd.dsymbolsem.toAlias` and
`dmd.typesem.isBaseOf` (See [Merged
PR](https://github.com/dlang/dmd/pull/21896)).
More information about the Digitalmars-d
mailing list