Finalizer proc must be global (#10388)

Fixes #10376
This commit is contained in:
LemonBoy 2019-01-22 07:35:52 +01:00 • committed by Andreas Rumpf
commit 3ea099bc7f
2 changed files with 36 additions and 0 deletions

View file

@ -410,4 +410,9 @@ proc magicsAfterOverloadResolution(c: PContext, n: PNode,
result = n
else:
result = plugin(c, n)
of mNewFinalize:
# Make sure the finalizer procedure refers to a procedure
if n[^1].kind == nkSym and n[^1].sym.kind notin {skProc, skFunc}:
localError(c.config, n.info, "finalizer must be a direct reference to a procedure")
result = n
else: result = n