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

Mohamed El Shorbagy mohrizq895 at gmail.com
Mon Nov 17 18:27:22 UTC 2025


# Summary of Progress (Nov. 10 - Nov. 17)

This week I worked on the following:

1. Many of the methods in `mtype.d` are dependent on `typesem`. 
However, some of them have been handled in the following PRs:
    - (Merged) [Move `Type.makeConst` to 
`typesem`](https://github.com/dlang/dmd/pull/22090)
    - (Merged) [Move `Type.makeMutable` and `Type.makeImmutable` 
to `typesem`](https://github.com/dlang/dmd/pull/22094)
    - (Merged) [Move `Type.makeShared` and `Type.makeSharedConst` 
to `typesem`](https://github.com/dlang/dmd/pull/22095)
    - (Merged) [Move `makeWild`, `makeWildConst`, 
`makeSharedWild`, and `makeSharedWildConst` to 
`typesem`](https://github.com/dlang/dmd/pull/22103)
    - (Open) [Move `Type.deduceWild` to 
`typesem`](https://github.com/dlang/dmd/pull/22107)

2. Still figuring out the best approach to handle the 
`IntegerExp.normalize` function that depends on `toBaseType`, 
which in turn depends on semantic analysis. The `normalize` 
function is called within the constructor, so to move it out of 
`expression`, we need to move it out of the constructor as well 
and call it at the proper sites.


More information about the Digitalmars-d mailing list