diff options
author | Araq <rumpf_a@web.de> | 2019-05-02 11:46:38 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-05-02 11:46:38 +0200 |
commit | 9ad96b58e638c57ef20c22513e29cd17d18874ff (patch) | |
tree | 68538b85da0b437323c51712033aa056ebf547b6 /tests/destructor | |
parent | 1ff2b021a5affd66309849e81b47823cc821b5fc (diff) | |
download | Nim-9ad96b58e638c57ef20c22513e29cd17d18874ff.tar.gz |
decent borrow check for --newruntime
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/tdont_return_unowned_from_owned.nim | 18 |
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 |