[SAOC 2025] Separate Semantic Routines from AST Nodes Weekly Update #2

Mohamed El Shorbagy mohrizq895 at gmail.com
Mon Sep 29 16:13:14 UTC 2025


## Summary of Progress (September 22 - September 29)

This week, I further eliminated some of the semantic function 
calls inside AST node files.

### What I Worked On

- Moved `TemplateInstanceBox` to `dmd/templatesem.d` to eliminate 
the calls of `dmd.templatesem.equalsx` (See [Merged 
PR](https://github.com/dlang/dmd/pull/21904)).

- Moved `arrayObjectHash` to `dmd/templatesem.d` to eliminate the 
calls of `dmd.templatesem.getExpression` (See [Merged 
PR](https://github.com/dlang/dmd/pull/21905)).

- (WIP) Broke semantic dependency of `dmd/dtemplate.d` on 
`dmd/dsymbolsem.d` by refactoring the `TemplateDeclaration` 
constructor to eliminate the call of `oneMembers` and call it at 
sites where it is needed (See 
[PR](https://github.com/dlang/dmd/pull/21917)).

- (WIP) Made `TemplateDeclaration.instances` a `void *` and cast 
it as `TemplateInstance[TemplateInstanceBox]` where it is used. 
This is to eliminate the import of 
`dmd.templatesem.TemplateInstanceBox` from `dmd/dtemplate.d` 
resulting from the first PR.


More information about the Digitalmars-d mailing list