parent
c6fadb1799
commit
562dde624f
2 changed files with 6 additions and 3 deletions
|
|
@ -303,12 +303,15 @@ proc registerAdditionalOps*(c: PCtx) =
|
|||
|
||||
proc getEffectList(c: PCtx; a: VmArgs; effectIndex: int) =
|
||||
let fn = getNode(a, 0)
|
||||
var list = newNodeI(nkBracket, fn.info)
|
||||
if fn.typ != nil and fn.typ.n != nil and fn.typ.n[0].len >= effectListLen and
|
||||
fn.typ.n[0][effectIndex] != nil:
|
||||
var list = newNodeI(nkBracket, fn.info)
|
||||
for e in fn.typ.n[0][effectIndex]:
|
||||
list.add opMapTypeInstToAst(c.cache, e.typ.skipTypes({tyRef}), e.info, c.idgen)
|
||||
setResult(a, list)
|
||||
else:
|
||||
list.add newIdentNode(getIdent(c.cache, "UncomputedEffects"), fn.info)
|
||||
|
||||
setResult(a, list)
|
||||
|
||||
registerCallback c, "stdlib.effecttraits.getRaisesListImpl", proc (a: VmArgs) =
|
||||
getEffectList(c, a, exceptionEffects)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue