mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
@@ -246,7 +246,8 @@ proc sumGeneric(t: PType): int =
|
||||
result += sumGeneric(a)
|
||||
break
|
||||
of tyProc:
|
||||
result += sumGeneric(t.returnType)
|
||||
if t.returnType != nil:
|
||||
result += sumGeneric(t.returnType)
|
||||
for _, a in t.paramTypes:
|
||||
result += sumGeneric(a)
|
||||
break
|
||||
|
||||
17
tests/overload/t23249.nim
Normal file
17
tests/overload/t23249.nim
Normal file
@@ -0,0 +1,17 @@
|
||||
# issue #23249
|
||||
|
||||
type Control* = object
|
||||
proc onAction*(c: Control, handler: proc(e: int) {.gcsafe.}) = discard
|
||||
proc onAction*(c: Control, handler: proc() {.gcsafe.}) = discard
|
||||
|
||||
template setControlHandlerBlock(c: Control, p: untyped, a: untyped) =
|
||||
when compiles(c.p(nil)):
|
||||
c.p() do() {.gcsafe.}: a
|
||||
else:
|
||||
c.p = proc() {.gcsafe.} =
|
||||
a
|
||||
|
||||
proc mkLayout() =
|
||||
var b: Control
|
||||
setControlHandlerBlock(b, onAction):
|
||||
echo "hi"
|
||||
Reference in New Issue
Block a user