diff options
author | LemonBoy <LemonBoy@users.noreply.github.com> | 2019-02-09 19:55:26 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-02-13 23:30:14 +0100 |
commit | d83520ec8f2e9b61c59930d7353ff621ef2ad3ec (patch) | |
tree | cd2f307ea24af8010114ebc11b9517ecd9e41d31 /tests/destructor | |
parent | eb30c786949c25f99e90f7b73e0f1714ffb6e3c0 (diff) | |
download | Nim-d83520ec8f2e9b61c59930d7353ff621ef2ad3ec.tar.gz |
Do not walk into type sub-nodes for cast/conv expr (#10616)
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/tcast.nim | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/destructor/tcast.nim b/tests/destructor/tcast.nim new file mode 100644 index 000000000..7d5a1954c --- /dev/null +++ b/tests/destructor/tcast.nim @@ -0,0 +1,18 @@ +discard """ + cmd: '''nim c --newruntime $file''' +""" + +# Make sure we don't walk cast[T] type section while injecting sinks/destructors +block: + type + XY[T] = object + discard + + proc `=`[T](x: var XY[T]; v: XY[T]) {.error.} + proc `=sink`[T](x: var XY[T]; v: XY[T]) {.error.} + + proc main[T]() = + var m = cast[ptr XY[T]](alloc0(sizeof(XY[T]))) + doAssert(m != nil) + + main[int]() |