diff options
Diffstat (limited to 'compiler/semstmts.nim')
-rwxr-xr-x | compiler/semstmts.nim | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 424950056..f761fd454 100755 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -658,6 +658,8 @@ proc semLambda(c: PContext, n: PNode): PNode = else: LocalError(n.info, errImplOfXexpected, s.name.s) sideEffectsCheck(c, s) + if s.typ.callConv == ccClosure and s.owner.kind == skModule: + localError(s.info, errXCannotBeClosure, s.name.s) closeScope(c.tab) # close scope for parameters popOwner() result.typ = s.typ @@ -754,6 +756,8 @@ proc semProcAux(c: PContext, n: PNode, kind: TSymKind, incl(s.flags, sfForward) elif sfBorrow in s.flags: semBorrow(c, n, s) sideEffectsCheck(c, s) + if s.typ.callConv == ccClosure and s.owner.kind == skModule: + localError(s.info, errXCannotBeClosure, s.name.s) closeScope(c.tab) # close scope for parameters popOwner() |