'auto' can be inferred to be 'void'

This commit is contained in:
Araq
2015-02-12 17:32:35 +01:00
parent f039aad5e0
commit c44d947ac5
2 changed files with 15 additions and 1 deletions

View File

@@ -1337,7 +1337,12 @@ proc semProcBody(c: PContext, n: PNode): PNode =
if c.p.owner.kind notin {skMacro, skTemplate} and
c.p.resultSym != nil and c.p.resultSym.typ.isMetaType:
localError(c.p.resultSym.info, errCannotInferReturnType)
if isEmptyType(result.typ):
# we inferred a 'void' return type:
c.p.resultSym.typ = nil
c.p.owner.typ.sons[0] = nil
else:
localError(c.p.resultSym.info, errCannotInferReturnType)
closeScope(c)

View File

@@ -0,0 +1,9 @@
import future
template tempo(s: expr) =
s("arg")
tempo((s: string)->auto => echo(s))
tempo((s: string) => echo(s))