mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 18:02:05 +00:00
@@ -1129,6 +1129,11 @@ proc typeSectionRightSidePass(c: PContext, n: PNode) =
|
||||
#debug s.typ
|
||||
s.ast = a
|
||||
popOwner(c)
|
||||
# If the right hand side expression was a macro call we replace it with
|
||||
# its evaluated result here so that we don't execute it once again in the
|
||||
# final pass
|
||||
if a[2].kind in nkCallKinds:
|
||||
a[2] = newNodeIT(nkType, a[2].info, t)
|
||||
if sfExportc in s.flags and s.typ.kind == tyAlias:
|
||||
localError(c.config, name.info, "{.exportc.} not allowed for type aliases")
|
||||
let aa = a.sons[2]
|
||||
|
||||
@@ -23,3 +23,18 @@ checkType(voidProc(), "void")
|
||||
checkType(intProc(10, 20.0), "int")
|
||||
checkType(voidProc, "procTy")
|
||||
checkProcType(voidProc)
|
||||
|
||||
# bug #10548
|
||||
block:
|
||||
var c {.compileTime.} = 0
|
||||
|
||||
macro meshImpl(arg: typed): untyped =
|
||||
inc c
|
||||
result = arg
|
||||
|
||||
type
|
||||
Blub = int32
|
||||
Mesh = meshImpl(Club)
|
||||
Club = Blub
|
||||
|
||||
static: doAssert(c == 1)
|
||||
|
||||
Reference in New Issue
Block a user