fix #13515 [backport] (#20315)

(cherry picked from commit 58e6d439d8)
This commit is contained in:
metagn
2022-09-11 09:33:24 +03:00
committed by narimiran
parent ece219de2f
commit e32de02f0a
2 changed files with 23 additions and 1 deletions

View File

@@ -250,8 +250,14 @@ proc semTemplSymbol(c: PContext, n: PNode, s: PSym; isField: bool): PNode =
of skUnknown:
# Introduced in this pass! Leave it as an identifier.
result = n
of OverloadableSyms-{skEnumField}:
of OverloadableSyms-{skEnumField, skTemplate, skMacro}:
result = symChoice(c, n, s, scOpen, isField)
of skTemplate, skMacro:
result = symChoice(c, n, s, scOpen, isField)
if result.kind == nkSym:
# template/macro symbols might need to be semchecked again
# prepareOperand etc don't do this without setting the type to nil
result.typ = nil
of skGenericParam:
if isField and sfGenSym in s.flags: result = n
else: result = newSymNodeTypeDesc(s, c.idgen, n.info)

16
tests/template/t13515.nim Normal file
View File

@@ -0,0 +1,16 @@
discard """
action: compile
"""
template test: bool = true
# compiles:
if not test:
echo "wtf"
# does not compile:
template x =
if not test:
echo "wtf"
x