mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-14 15:23:27 +00:00
@@ -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)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
## for Nim's macro system.
|
||||
## **Since**: Version 1.4.
|
||||
##
|
||||
## One can test for the existance of this standard module
|
||||
## One can test for the existence of this standard module
|
||||
## via `defined(nimHasEffectTraitsModule)`.
|
||||
|
||||
import macros
|
||||
|
||||
Reference in New Issue
Block a user