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

Mohamed El Shorbagy mohrizq895 at gmail.com
Mon Jan 5 20:34:21 UTC 2026


# Summary of Progress (Dec. 29 - Jan. 05)

This week I continued work on refactoring AST nodes to break the 
dependency on semantic and backend helpers. Here are some PRs:

- [Move `FuncDeclaration.isVirtualMethod` and 
`FuncDeclaration.hasNestedFrameRefs` to 
`funcsem`](https://github.com/dlang/dmd/pull/22331)
- [Move `FuncDeclaration.isVirtual` to 
`funcsem`](https://github.com/dlang/dmd/pull/22340)
- [Move `FuncDeclaration.addPreInvariant` and 
`FuncDeclaration.addPostInvariant` to 
`funcsem`](https://github.com/dlang/dmd/pull/22341)

Currently, I am working on moving `FuncDeclaration.isThis` to 
`funcsem` to break the dependency of `func` on `objc`, but 
`needsThis` depends on it, and it is used in `hdrgen` and 
`expression`, so I am figuring out how to get rid of them while 
maintaining the functionality.


More information about the Digitalmars-d mailing list