I tried to remove void return type from my code, and discovered problem, 
sometimes it doesn't work, is this expected or bug? This code won't compile, 
[try](https://play.nim-lang.org/#ix=4toZ)
    
    
    proc on_click*(fn: proc(e: string)) = discard
    proc on_click*(fn: proc) = discard
    
    on_click(proc (e: auto) = discard)
    
    
    Run

Error
    
    
    /usercode/in.nim(4, 9) template/generic instantiation of `on_click` from 
here
    /usercode/in.nim(2, 15) Error: invalid type: 'GenericParam' in this 
context: 'proc (fn: proc (e: GenericParam)){.noSideEffect, gcsafe, locks: 0.}' 
for proc
    
    
    Run

But if you explicitly mark return as void it would
    
    
    proc on_click*(fn: proc(e: string): void) = discard
    proc on_click*(fn: proc: void) = discard
    
    on_click(proc (e: auto): void = discard)
    
    
    Run

Reply via email to