genTryCpp to catch by Nim type, ready for first review (#7196)

* Rewrite genTryCpp

* correction

* Implement polymorphic raise in cpp

* revert backticks in emit

* Cleanp a comment

* revert test changes

* better handling of <new> header
This commit is contained in:
cooldome 2018-02-12 20:23:34 +00:00 • committed by Andreas Rumpf
commit d24b6667c6
10 changed files with 110 additions and 79 deletions

View file

@ -1657,6 +1657,20 @@ proc toObject*(typ: PType): PType =
if result.kind == tyRef:
result = result.lastSon
proc isException*(t: PType): bool =
# check if `y` is object type and it inherits from Exception
assert(t != nil)
if t.kind != tyObject:
return false
var base = t
while base != nil:
if base.sym.magic == mException:
return true
base = base.lastSon
return false
proc findUnresolvedStatic*(n: PNode): PNode =
if n.kind == nkSym and n.typ.kind == tyStatic and n.typ.n == nil:
return n