diff options
author | Araq <rumpf_a@web.de> | 2019-07-14 16:07:30 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-07-14 16:07:30 +0200 |
commit | 44c12d9d206a98e6f92066a7a6cde1a181883bf8 (patch) | |
tree | ccb8307c616bcf6f62840b1c2fd3715be34d1189 /compiler | |
parent | 9db369063c4d14d775015df8f7490d23603827f3 (diff) | |
download | Nim-44c12d9d206a98e6f92066a7a6cde1a181883bf8.tar.gz |
make 'koch temp' work again
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ccgexprs.nim | 7 | ||||
-rw-r--r-- | compiler/semexprs.nim | 26 |
2 files changed, 20 insertions, 13 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index d3ebddac4..22951b4cb 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -2244,8 +2244,11 @@ proc genMagicExpr(p: BProc, e: PNode, d: var TLoc, op: TMagic) = of mNLen..mNError, mSlurp..mQuoteAst: localError(p.config, e.info, strutils.`%`(errXMustBeCompileTime, e.sons[0].sym.name.s)) of mSpawn: - let n = spawn.wrapProcForSpawn(p.module.g.graph, p.module.module, e, e.typ, nil, nil) - expr(p, n, d) + when defined(leanCompiler): + quit "compiler built without support for the 'spawn' statement" + else: + let n = spawn.wrapProcForSpawn(p.module.g.graph, p.module.module, e, e.typ, nil, nil) + expr(p, n, d) of mParallel: when defined(leanCompiler): quit "compiler built without support for the 'parallel' statement" diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index bd9f18645..0c20d2c20 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -2163,18 +2163,22 @@ proc semMagic(c: PContext, n: PNode, s: PSym, flags: TExprFlags): PNode = result.sons[1] = semStmt(c, x, {}) dec c.inParallelStmt of mSpawn: - result = setMs(n, s) - for i in 1 ..< n.len: - result.sons[i] = semExpr(c, n.sons[i]) - let typ = result[^1].typ - if not typ.isEmptyType: - if spawnResult(typ, c.inParallelStmt > 0) == srFlowVar: - result.typ = createFlowVar(c, typ, n.info) - else: - result.typ = typ - result.add instantiateCreateFlowVarCall(c, typ, n.info).newSymNode + when defined(leanCompiler): + localError(c.config, n.info, "compiler was built without 'spawn' support") + result = n else: - result.add c.graph.emptyNode + result = setMs(n, s) + for i in 1 ..< n.len: + result.sons[i] = semExpr(c, n.sons[i]) + let typ = result[^1].typ + if not typ.isEmptyType: + if spawnResult(typ, c.inParallelStmt > 0) == srFlowVar: + result.typ = createFlowVar(c, typ, n.info) + else: + result.typ = typ + result.add instantiateCreateFlowVarCall(c, typ, n.info).newSymNode + else: + result.add c.graph.emptyNode of mProcCall: result = setMs(n, s) result.sons[1] = semExpr(c, n.sons[1]) |