nim-lang / Nim

Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
https://nim-lang.org
Other
16.64k stars 1.47k forks source link

cbuilder: add assignments, fields, subscripts, deref #24351

Closed metagn closed 1 month ago

metagn commented 1 month ago

This PR is somewhat large, worst case it can be split into one with just assignments and one with just fields/derefs etc.

Assignments with calls as values have not been touched so they can be done when calls are implemented. Similarly codegen with complex logic i.e. genEnumInfo, genTypeInfoV2, unaryExpr is not completely ported yet so they can be done in standalone PRs.

Araq commented 1 month ago

This PR is somewhat large, worst case it can be split into one with just assignments and one with just fields/derefs etc.

As long as the CI is green, it's fine. I simply assume near 100% test coverage for the cgen.nim.

github-actions[bot] commented 1 month ago

Thanks for your hard work on this PR! The lines below are statistics of the Nim compiler built from 820e2bee9c14916f719815be0460fc09e8067531

Hint: mm: orc; opt: speed; options: -d:release 175612 lines; 8.736s; 654.602MiB peakmem