Hi!

What am I doing wrong here:
    
    
    type
      FooProc = proc(x: int)
      
      Callbacks = tuple [
        cb: FooProc
      ]
    
    proc foo(x: int) : void = echo "foo: " & $x
    
    let f:FooProc = foo
    
    let c0: Callbacks = (cb: f)    # works fine
    let c1: Callbacks = (cb: foo)  # type mismatch!
    
    c0.cb(42)
    c1.cb(42)
    

The assignment to c1 complains, saying:
    
    
    : type mismatch: got (tuple[cb: proc (x: int){.gcsafe, locks: 0.}]) but 
expected 'Callbacks = tuple[cb: FooProc]'

But surely f and foo are the same? Shouldn't that assignment either always 
fail, or always be OK? What am I missing?

Thanks! 

Reply via email to