import strutils
type
App = ref object of RootObj
i: int
proc isDigit(app: App) =
discard
macro xconnect(widget: RootRef; signal: string; p: typed; arg: typed;
ignoreArg: bool): untyped =
discard
proc main =
let app: App = nil
xconnect(app, "activate", isDigit, "", true)
main()
#
# nim -v
# Nim Compiler Version 0.17.2 (2017-09-08) [Linux: amd64]
# Copyright (c) 2006-2017 by Andreas Rumpf
# $ nim c button.nim
# button.nim(15, 11) Error: type mismatch: got (App, string, proc (app:
App){.noSideEffect, gcsafe, locks: 0.} | proc (c: char): bool{.noSideEffect,
gcsafe, locks: 0.} | proc (s: string): bool{.noSideEffect, gcsafe, locks: 0.},
string, bool)
# but expected one of:
# macro xconnect(widget: RootRef; signal: string; p: typed; arg: typed;
ignoreArg: bool): untyped