mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
committed by
Andreas Rumpf
parent
88814bbe98
commit
ae9bb4474b
@@ -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:
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
discard """
|
||||
cmd: "nim check $file"
|
||||
errmsg: ""
|
||||
nimout: '''tillegalreturntype.nim(8, 11) Error: return type 'typed' is only valid for macros and templates
|
||||
tillegalreturntype.nim(11, 11) Error: return type 'untyped' is only valid for macros and templates'''
|
||||
nimout: '''
|
||||
tillegalreturntype.nim(11, 11) Error: return type 'typed' is only valid for macros and templates
|
||||
tillegalreturntype.nim(14, 11) Error: return type 'untyped' is only valid for macros and templates
|
||||
tillegalreturntype.nim(17, 41) Error: return type 'auto' cannot be used in forward declarations
|
||||
'''
|
||||
"""
|
||||
|
||||
proc x(): typed =
|
||||
@@ -10,3 +13,9 @@ proc x(): typed =
|
||||
|
||||
proc y(): untyped =
|
||||
discard
|
||||
|
||||
proc test_proc[T, U](arg1: T, arg2: U): auto
|
||||
|
||||
proc test_proc[T, U](arg1: T, arg2: U): auto =
|
||||
echo "Proc has been called"
|
||||
return arg1 / arg2
|
||||
|
||||
Reference in New Issue
Block a user