diff options
author | Araq <rumpf_a@web.de> | 2019-04-22 08:05:16 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-04-22 08:05:16 +0200 |
commit | 665fcb12dd0eef8637fb573b92a791021ba34740 (patch) | |
tree | 985a60fb57627589f7d99dbf0d2a1da833a89508 /tests/destructor | |
parent | fabc2a7086bb83afc2abfd6d5841f25c8387609f (diff) | |
download | Nim-665fcb12dd0eef8637fb573b92a791021ba34740.tar.gz |
fixes #11073
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/tdont_return_unowned_from_owned.nim | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/destructor/tdont_return_unowned_from_owned.nim b/tests/destructor/tdont_return_unowned_from_owned.nim new file mode 100644 index 000000000..490134ee9 --- /dev/null +++ b/tests/destructor/tdont_return_unowned_from_owned.nim @@ -0,0 +1,35 @@ +discard """ + cmd: "nim check --newruntime --hints:off $file" + nimout: '''tdont_return_unowned_from_owned.nim(24, 10) Error: cannot return an owned pointer as an unowned pointer; use 'owned(Obj)' as the return type +tdont_return_unowned_from_owned.nim(27, 10) Error: cannot return an owned pointer as an unowned pointer; use 'owned(Obj)' as the return type +tdont_return_unowned_from_owned.nim(30, 6) Error: type mismatch: got <Obj> +but expected one of: +proc new[T](a: var ref T; finalizer: proc (x: ref T) {.nimcall.}) +2 other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them + +expression: new(result) +tdont_return_unowned_from_owned.nim(30, 6) Error: illformed AST: +''' + errormsg: "illformed AST:" + line: 30 +""" + + + +# bug #11073 +type + Obj = ref object + +proc newObjA(): Obj = + result = new Obj + +proc newObjB(): Obj = + result = Obj() + +proc newObjC(): Obj = + new(result) + +let a = newObjA() +let b = newObjB() +let c = newObjC() + |