diff options
author | Zahary Karadjov <zahary@gmail.com> | 2017-04-18 23:55:59 +0300 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2017-04-18 23:55:59 +0300 |
commit | 3e52bb6535a70339cf4a15123be09916ef0c31f6 (patch) | |
tree | 7ca6696bc579014182dfe982f0b2c17f646177ad /tests/generics | |
parent | 13701c09579447d3c54f6a1e27ab24b89b11b9e9 (diff) | |
download | Nim-3e52bb6535a70339cf4a15123be09916ef0c31f6.tar.gz |
fix a regrsesion in signature matching of derived ptr types
Diffstat (limited to 'tests/generics')
-rw-r--r-- | tests/generics/tptrinheritance.nim | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/generics/tptrinheritance.nim b/tests/generics/tptrinheritance.nim new file mode 100644 index 000000000..1e1115fa5 --- /dev/null +++ b/tests/generics/tptrinheritance.nim @@ -0,0 +1,20 @@ +type NSPasteboardItem* = ptr object +type NSPasteboard* = ptr object +type NSArrayAbstract = ptr object {.inheritable.} +type NSMutableArrayAbstract = ptr object of NSArrayAbstract +type NSArray*[T] = ptr object of NSArrayAbstract +type NSMutableArray*[T] = ptr object of NSArray[T] + +proc newMutableArrayAbstract*(): NSMutableArrayAbstract = discard + +template newMutableArray*(T: typedesc): NSMutableArray[T] = + cast[NSMutableArray[T]](newMutableArrayAbstract()) + +proc writeObjects*(p: NSPasteboard, o: ptr NSArray[NSPasteboardItem]) = discard + +let a = newMutableArray NSPasteboardItem +var x: NSMutableArray[NSPasteboardItem] +var y: NSArray[NSPasteboardItem] = x + +writeObjects(nil, a) + |