From fcd2f305ad5ad2af37284caf7b33907afb8ad834 Mon Sep 17 00:00:00 2001 From: Araq Date: Fri, 10 Jan 2020 01:51:06 +0100 Subject: fixes #13070 --- tests/destructor/tgotoexceptions4.nim | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/destructor/tgotoexceptions4.nim (limited to 'tests/destructor') diff --git a/tests/destructor/tgotoexceptions4.nim b/tests/destructor/tgotoexceptions4.nim new file mode 100644 index 000000000..918169084 --- /dev/null +++ b/tests/destructor/tgotoexceptions4.nim @@ -0,0 +1,40 @@ +discard """ + cmd: "nim c --gc:arc --exceptions:goto $file" + output: '''caught in gun +caught in fun +caughtsome msgMyExcept +in finally +caught1''' +""" + +when true: + # bug #13070 + type MyExcept = object of CatchableError + proc gun() = + try: + raise newException(MyExcept, "some msg") + except Exception as eab: + echo "caught in gun" + raise eab + + proc fun() = + try: + gun() + except Exception as e: + echo "caught in fun" + echo("caught", e.msg, e.name) + finally: + echo "in finally" + fun() + +when true: + # bug #13072 + type MyExceptB = object of CatchableError + proc gunB() = + raise newException(MyExceptB, "some msg") + proc funB() = + try: + gunB() + except CatchableError: + echo "caught1" + funB() -- cgit 1.4.1-2-gfad0