'auto' can be inferred to be 'void'
This commit is contained in:
parent
f039aad5e0
commit
c44d947ac5
2 changed files with 15 additions and 1 deletions
|
|
@ -1337,7 +1337,12 @@ proc semProcBody(c: PContext, n: PNode): PNode =
|
||||||
|
|
||||||
if c.p.owner.kind notin {skMacro, skTemplate} and
|
if c.p.owner.kind notin {skMacro, skTemplate} and
|
||||||
c.p.resultSym != nil and c.p.resultSym.typ.isMetaType:
|
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)
|
closeScope(c)
|
||||||
|
|
||||||
|
|
|
||||||
9
tests/types/tauto_canbe_void.nim
Normal file
9
tests/types/tauto_canbe_void.nim
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
import future
|
||||||
|
|
||||||
|
template tempo(s: expr) =
|
||||||
|
s("arg")
|
||||||
|
|
||||||
|
tempo((s: string)->auto => echo(s))
|
||||||
|
tempo((s: string) => echo(s))
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue