summary refs log tree commit diff stats
path: root/compiler/semstmts.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/semstmts.nim')
-rwxr-xr-xcompiler/semstmts.nim4
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()