summary refs log blame commit diff stats
path: root/tests/compile/tdictdestruct.nim
blob: ec1084105d6244eb09487f3f9c19635613c34e97 (plain) (tree)
1
2
3
4
5
6
7
8






                                   
                                                                     


                                            

                                                   
                                        

                                                                            



                             
type
  TDict[TK, TV] = object
    k: TK
    v: TV
  PDict[TK, TV] = ref TDict[TK, TV]

proc fakeNew[T](x: var ref T, destroy: proc (a: ref T) {.nimcall.}) =
  nil

proc destroyDict[TK, TV](a: PDict[TK, TV]) =
    return
proc newDict[TK, TV](a: TK, b: TV): PDict[TK, TV] =
    Fakenew(result, destroyDict[TK, TV])

# Problem: destroyDict is not instantiated when newDict is instantiated!    

discard newDict("a", "b")