summary refs log tree commit diff stats
path: root/tests/destructor
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-05-02 11:46:38 +0200
committerAraq <rumpf_a@web.de>2019-05-02 11:46:38 +0200
commit9ad96b58e638c57ef20c22513e29cd17d18874ff (patch)
tree68538b85da0b437323c51712033aa056ebf547b6 /tests/destructor
parent1ff2b021a5affd66309849e81b47823cc821b5fc (diff)
downloadNim-9ad96b58e638c57ef20c22513e29cd17d18874ff.tar.gz
decent borrow check for --newruntime
Diffstat (limited to 'tests/destructor')
-rw-r--r--tests/destructor/tdont_return_unowned_from_owned.nim18
1 files changed, 13 insertions, 5 deletions
diff --git a/tests/destructor/tdont_return_unowned_from_owned.nim b/tests/destructor/tdont_return_unowned_from_owned.nim
index 490134ee9..5794dec1d 100644
--- a/tests/destructor/tdont_return_unowned_from_owned.nim
+++ b/tests/destructor/tdont_return_unowned_from_owned.nim
@@ -9,13 +9,13 @@ proc new[T](a: var ref T; finalizer: proc (x: ref T) {.nimcall.})
 
 expression: new(result)
 tdont_return_unowned_from_owned.nim(30, 6) Error: illformed AST:
+tdont_return_unowned_from_owned.nim(38, 13) Error: assignment produces a dangling ref: the unowned ref lives longer than the owned ref
+tdont_return_unowned_from_owned.nim(39, 13) Error: assignment produces a dangling ref: the unowned ref lives longer than the owned ref
+tdont_return_unowned_from_owned.nim(43, 10) Error: cannot return an owned pointer as an unowned pointer; use 'owned(RootRef)' as the return type
 '''
-  errormsg: "illformed AST:"
-  line: 30
+  errormsg: "cannot return an owned pointer as an unowned pointer; use 'owned(RootRef)' as the return type"
+  line: 43
 """
-
-
-
 # bug #11073
 type
   Obj = ref object
@@ -33,3 +33,11 @@ let a = newObjA()
 let b = newObjB()
 let c = newObjC()
 
+proc testA(result: var (RootRef, RootRef)) =
+  let r: owned RootRef = RootRef()
+  result[0] = r
+  result[1] = RootRef()
+
+proc testB(): RootRef =
+  let r: owned RootRef = RootRef()
+  result = r