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
    
    

Reply via email to