diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/core/macros.nim | 8 | ||||
-rw-r--r-- | lib/system.nim | 3 |
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index ed9c304fe..f2a39f43b 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -902,7 +902,7 @@ proc newIfStmt*(branches: varargs[tuple[cond, body: NimNode]]): ## result = newNimNode(nnkIfStmt) for i in branches: - result.add(newNimNode(nnkElifBranch).add(i.cond, i.body)) + result.add(newTree(nnkElifBranch, i.cond, i.body)) proc newEnum*(name: NimNode, fields: openArray[NimNode], public, pure: bool): NimNode {.compileTime.} = @@ -1227,7 +1227,7 @@ proc customPragmaNode(n: NimNode): NimNode = let recList = typDef[2][2] for identDefs in recList: for i in 0 .. identDefs.len - 3: - if identDefs[i].kind == nnkPragmaExpr and + if identDefs[i].kind == nnkPragmaExpr and identDefs[i][0].kind == nnkIdent and $identDefs[i][0] == $n[1]: return identDefs[i][1] @@ -1237,7 +1237,7 @@ macro hasCustomPragma*(n: typed, cp: typed{nkSym}): untyped = ## ## .. code-block:: nim ## template myAttr() {.pragma.} - ## type + ## type ## MyObj = object ## myField {.myAttr.}: int ## var o: MyObj @@ -1255,7 +1255,7 @@ macro getCustomPragmaVal*(n: typed, cp: typed{nkSym}): untyped = ## ## .. code-block:: nim ## template serializationKey(key: string) {.pragma.} - ## type + ## type ## MyObj = object ## myField {.serializationKey: "mf".}: int ## var o: MyObj diff --git a/lib/system.nim b/lib/system.nim index 2f95b45f0..8e6b997b6 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -4131,3 +4131,6 @@ when defined(cpp) and appType != "lib" and not defined(js) and stderr.write trace & "Error: unhandled exception: " & ex.msg & " [" & $ex.name & "]\n" quit 1 + +type + ForLoopExpr*{.compilerProc.}[T] = object ## the type of a 'for' loop expression |