summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorArne Döring <arne.doering@gmx.net>2019-08-26 20:14:21 +0200
committerAndreas Rumpf <rumpf_a@web.de>2019-08-26 20:14:21 +0200
commitae9bb4474bdfb6740cbf50875febdf9689718601 (patch)
tree2e413afe46f8b888cdc640e534aa5e5b2367a33f /compiler
parent88814bbe98fe43ca4f3c168b7d77ebb820838e7a (diff)
downloadNim-ae9bb4474bdfb6740cbf50875febdf9689718601.tar.gz
fixes #12033 (#12039)
Diffstat (limited to 'compiler')
-rw-r--r--compiler/semstmts.nim4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim
index 07aaf0eca..0d9d1af39 100644
--- a/compiler/semstmts.nim
+++ b/compiler/semstmts.nim
@@ -1904,6 +1904,10 @@ proc semProcAux(c: PContext, n: PNode, kind: TSymKind,
         discard
       popProcCon(c)
   else:
+    if s.kind in {skProc, skFunc} and s.typ[0] != nil and s.typ[0].kind == tyUntyped:
+      # `auto` is represented as `tyUntyped` at this point in compilation.
+      localError(c.config, n[paramsPos][0].info, "return type 'auto' cannot be used in forward declarations")
+
     if s.kind == skMethod: semMethodPrototype(c, s, n)
     if proto != nil: localError(c.config, n.info, errImplOfXexpected % proto.name.s)
     if {sfImportc, sfBorrow, sfError} * s.flags == {} and s.magic == mNone: