diff options
author | Zahary Karadjov <zahary@gmail.com> | 2013-08-25 18:11:05 +0300 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2013-08-25 18:11:28 +0300 |
commit | 89086a8e19292ad986baa808ff42ccad32bf2636 (patch) | |
tree | dba214f1beaeac5556f33cccbb3a476aca94cae5 /compiler/evals.nim | |
parent | 6378fbd66ef9ff85510bf0583610bfc84dc6528f (diff) | |
download | Nim-89086a8e19292ad986baa808ff42ccad32bf2636.tar.gz |
prevent eval crashes due to PContext-dependent ops not being available in evalConstExpr
Diffstat (limited to 'compiler/evals.nim')
-rw-r--r-- | compiler/evals.nim | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/compiler/evals.nim b/compiler/evals.nim index 7bd74b04a..be6f625ec 100644 --- a/compiler/evals.nim +++ b/compiler/evals.nim @@ -1440,8 +1440,7 @@ proc eval*(c: PEvalContext, n: PNode): PNode = else: stackTrace(c, result.info, errCannotInterpretNodeX, renderTree(n)) -proc evalConstExprAux(module, prc: PSym, e: PNode, mode: TEvalMode): PNode = - var p = newEvalContext(module, mode) +proc evalConstExprAux*(p: PEvalContext, module, prc: PSym, e: PNode): PNode = var s = newStackFrame() s.call = e s.prc = prc @@ -1450,12 +1449,6 @@ proc evalConstExprAux(module, prc: PSym, e: PNode, mode: TEvalMode): PNode = if result != nil and result.kind == nkExceptBranch: result = nil popStackFrame(p) -proc evalConstExpr*(module: PSym, e: PNode): PNode = - result = evalConstExprAux(module, nil, e, emConst) - -proc evalStaticExpr*(module: PSym, e: PNode, prc: PSym): PNode = - result = evalConstExprAux(module, prc, e, emStatic) - proc setupMacroParam(x: PNode): PNode = result = x if result.kind == nkHiddenStdConv: result = result.sons[1] |