diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-03-23 00:12:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-23 00:12:05 +0100 |
commit | bf592c4e944e9cca8a2bb60f52b5b39388c4ed4c (patch) | |
tree | f5a7eddcae6fca19dd785a975e2f885f88ff8007 /compiler/renderer.nim | |
parent | 25649616ea5b6aba575149df3f9943f48a5ece31 (diff) | |
download | Nim-bf592c4e944e9cca8a2bb60f52b5b39388c4ed4c.tar.gz |
more destructor based changes (#10885)
* mark user defined destructors with sfOverriden to simplify the logic * refactoring in preparation to merge liftings and generic instantiations for destructors * ast: introduce nkHiddenTryStmt for destructor generation in order to be able to optimize better the code later on * renamed 'patterns' switch to 'trmacros' as it was totally misleading before * destructors: introduce tfCheckedForDestructor flag in preparation of strict =destroy checking * test for invalid/too late destructor introductions * liftdestructors: make code robust for nimsuggest * --newruntime works for hello world again * newruntime: code generation for closures
Diffstat (limited to 'compiler/renderer.nim')
-rw-r--r-- | compiler/renderer.nim | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/renderer.nim b/compiler/renderer.nim index 832add378..5d65cf6d3 100644 --- a/compiler/renderer.nim +++ b/compiler/renderer.nim @@ -503,7 +503,7 @@ proc lsub(g: TSrcGen; n: PNode): int = of nkReturnStmt: if n.len > 0 and n[0].kind == nkAsgn: result = len("return_") + lsub(g, n[0][1]) - else: + else: result = len("return_") + lsub(g, n[0]) of nkRaiseStmt: result = lsub(g, n.sons[0]) + len("raise_") of nkYieldStmt: result = lsub(g, n.sons[0]) + len("yield_") @@ -1295,7 +1295,7 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) = of nkWhileStmt: gwhile(g, n) of nkPragmaBlock: gpragmaBlock(g, n) of nkCaseStmt, nkRecCase: gcase(g, n) - of nkTryStmt: gtry(g, n) + of nkTryStmt, nkHiddenTryStmt: gtry(g, n) of nkForStmt, nkParForStmt: gfor(g, n) of nkBlockStmt, nkBlockExpr: gblock(g, n) of nkStaticStmt: gstaticStmt(g, n) @@ -1345,9 +1345,9 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) = gsub(g, n.sons[0]) of nkReturnStmt: putWithSpace(g, tkReturn, "return") - if n.len > 0 and n[0].kind == nkAsgn: + if n.len > 0 and n[0].kind == nkAsgn: gsub(g, n[0], 1) - else: + else: gsub(g, n, 0) of nkRaiseStmt: putWithSpace(g, tkRaise, "raise") |