fixes 25610; ignores skTemplate and skMacro symbols in cgen#25616
Open
demotomohiro wants to merge 1 commit intonim-lang:develfrom
Open
fixes 25610; ignores skTemplate and skMacro symbols in cgen#25616demotomohiro wants to merge 1 commit intonim-lang:develfrom
demotomohiro wants to merge 1 commit intonim-lang:develfrom
Conversation
Araq
reviewed
Mar 19, 2026
| of skTemplate, skMacro: | ||
| # it is possible to get these kind of symbols if cgen was called from nifbackend.nim | ||
| # as symbols are lazily loaded including symbol kinds, cannot exclude them when loading Nif files | ||
| discard |
Member
There was a problem hiding this comment.
Why do these symbol kinds enter the backend for IC? And how is simply ignoring them a valid strategy?
Contributor
Author
There was a problem hiding this comment.
When encoding procs, templates or macros defined under top level block statements to Nif, they are written as sdef.
When loading the Nif file, they are loaded as symbol nodes without nkProcDef/nkTemplateDef/nkMacroDef nodes.
expr proc in ccgexprs.nim simply ignores nkTemplateDef/nkMacroDef nodes and nkProcDef with sfCompileTime flag.
I'm trying to fix this bug by encoding procs, templates and macros defined under top level block statements in the same way as ast inside sdef (write full structure).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
also adds simple macro tests to tests/ic.