[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