diff options
Diffstat (limited to 'tests/misc/tcast.nim')
-rw-r--r-- | tests/misc/tcast.nim | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/misc/tcast.nim b/tests/misc/tcast.nim index 745b9e221..12179cb1c 100644 --- a/tests/misc/tcast.nim +++ b/tests/misc/tcast.nim @@ -29,3 +29,47 @@ reject: discard cast[enum](0) proc a = echo "hi" reject: discard cast[ptr](a) + +# bug #15623 +block: + if false: + echo cast[ptr int](nil)[] + +block: + if false: + var x: ref int = nil + echo cast[ptr int](x)[] + +block: + doAssert cast[int](cast[ptr int](nil)) == 0 + +block: + var x: ref int = nil + doAssert cast[int](cast[ptr int](x)) == 0 + +block: + block: + static: + let a = cast[pointer](nil) + doAssert a.repr == "nil" + + block: + static: + doAssert cast[ptr int](nil).repr == "nil" + + block: + const str = cast[ptr int](nil) + static: + doAssert str.repr == "nil" + + block: + static: + doAssert cast[ptr int](nil).repr == "nil" + + block: + static: + doAssert cast[RootRef](nil).repr == "nil" + + block: + static: + doAssert cast[cstring](nil).repr == "nil" |