Add tests for #8481, #6490 and #4061 (#14083)

This commit is contained in:
Clyybber
2020-04-23 19:52:33 +02:00
committed by GitHub
parent 66db9de714
commit eca8f1d79f
3 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
discard """
errormsg: "can raise an unlisted exception: ref Exception"
line: 16
"""
# bug #8481
type
ParentObj = ref object of RootObj
DerivedObj = ref object of ParentObj
method doSome(o: ParentObj) {.base, raises: [].} =
discard
method doSome(o: DerivedObj) =
raise newException(Exception, "oops, this raised")
proc thisRaises() {.raises: [].} =
let o = new(DerivedObj)
o.doSome()
thisRaises()

View File

@@ -140,3 +140,16 @@ var res = Resource(name: "Resource 1")
(proc (r: typeof(res)) =
echo r[])(res)
# bug #4061
type List[T] = object
e: T
n: ptr List[T]
proc zip*[T,U](xs: List[T], ys: List[U]): List[(T,U)] = discard
proc unzip*[T,U](xs: List[tuple[t: T, u: U]]): (List[T], List[U]) = discard
proc unzip2*[T,U](xs: List[(T,U)]): (List[T], List[U]) = discard

View File

@@ -63,3 +63,13 @@ proc parse(cts: CTS, jn: JsonNode) =
proc p(x: proc(){.closure.} not nil) = discard
p(proc(){.closure.} = discard)
# bug #6490
proc p2(a: proc()) =
if a.isNil:
raise newException(ValueError, "a is nil")
else:
let b: proc() not nil = a
p2(writeStackTrace)