diff options
-rwxr-xr-x | compiler/semexprs.nim | 4 | ||||
-rwxr-xr-x | examples/hallo.nim | 2 | ||||
-rwxr-xr-x | lib/core/macros.nim | 6 | ||||
-rw-r--r-- | lib/pure/unittest.nim | 4 | ||||
-rwxr-xr-x | lib/wrappers/tcl.nim | 2 | ||||
-rwxr-xr-x | tests/compile/tdumpast.nim | 2 | ||||
-rw-r--r-- | tests/run/tstringinterp.nim | 8 | ||||
-rw-r--r-- | tests/run/tusingstatement.nim | 4 |
8 files changed, 16 insertions, 16 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index d3b30e24b..147f38abb 100755 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -918,7 +918,7 @@ proc semAsgn(c: PContext, n: PNode): PNode = let nOrig = n.copyTree a = builtinFieldAccess(c, a, {efLValue}) if a == nil: - return propertyWriteAccess(c, n, nOrig, a) + return propertyWriteAccess(c, n, nOrig, n[0]) of nkBracketExpr: # a[i] = x # --> `[]=`(a, i, x) @@ -1028,7 +1028,7 @@ proc semExpandToAst(c: PContext, n: PNode, magicSym: PSym, # Preserve the magic symbol in order to be handled in evals.nim n.sons[0] = newSymNode(magicSym, n.info) - n.typ = expandedSym.getReturnType + n.typ = getSysSym("PNimrodNode").typ # expandedSym.getReturnType result = n else: result = semDirectOp(c, n, flags) diff --git a/examples/hallo.nim b/examples/hallo.nim index c8a4a3a8c..d94da8c1f 100755 --- a/examples/hallo.nim +++ b/examples/hallo.nim @@ -1,3 +1,3 @@ # Hello world program -echo "Hello World!" +echo "Hello World" diff --git a/lib/core/macros.nim b/lib/core/macros.nim index 1fb012a28..8b08952f0 100755 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -194,15 +194,15 @@ proc lineinfo*(n: PNimrodNode): string {.magic: "NLineInfo".} ## returns the position the node appears in the original source file ## in the form filename(line, col) -proc parseExpr*(s: string): expr {.magic: "ParseExprToAst".} +proc parseExpr*(s: string): PNimrodNode {.magic: "ParseExprToAst".} ## Compiles the passed string to its AST representation. ## Expects a single expression. -proc parseStmt*(s: string): stmt {.magic: "ParseStmtToAst".} +proc parseStmt*(s: string): PNimrodNode {.magic: "ParseStmtToAst".} ## Compiles the passed string to its AST representation. ## Expects one or more statements. -proc getAst*(macroOrTemplate: expr): expr {.magic: "ExpandToAst".} +proc getAst*(macroOrTemplate: expr): PNimrodNode {.magic: "ExpandToAst".} ## Obtains the AST nodes returned from a macro or template invocation. ## Example: ## diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim index 9ff44632d..5220f53e0 100644 --- a/lib/pure/unittest.nim +++ b/lib/pure/unittest.nim @@ -94,7 +94,7 @@ template fail* = macro check*(conditions: stmt): stmt = proc standardRewrite(e: PNimrodNode): PNimrodNode = - template rewrite(Exp, lineInfoLit: expr, expLit: string): PNimrodNode = + template rewrite(Exp, lineInfoLit: expr, expLit: string): stmt = if not Exp: checkpoint(lineInfoLit & ": Check failed: " & expLit) fail() @@ -107,7 +107,7 @@ macro check*(conditions: stmt): stmt = of nnkInfix: proc rewriteBinaryOp(op: PNimrodNode): PNimrodNode = template rewrite(op, left, right, lineInfoLit: expr, opLit, - leftLit, rightLit: string, printLhs, printRhs: bool): PNimrodNode = + leftLit, rightLit: string, printLhs, printRhs: bool): stmt = block: var lhs = left diff --git a/lib/wrappers/tcl.nim b/lib/wrappers/tcl.nim index 8836a4296..8cd715838 100755 --- a/lib/wrappers/tcl.nim +++ b/lib/wrappers/tcl.nim @@ -87,7 +87,7 @@ const IDLE_EVENTS* = 1 shl 5 # WAS 0x10 ???? * ALL_EVENTS* = not DONT_WAIT VOLATILE* = 1 - STATIC* = 0 + TCL_STATIC* = 0 DYNAMIC* = 3 # Channel TCL_STDIN* = 1 shl 1 TCL_STDOUT* = 1 shl 2 diff --git a/tests/compile/tdumpast.nim b/tests/compile/tdumpast.nim index d044e1da1..20a041c5b 100755 --- a/tests/compile/tdumpast.nim +++ b/tests/compile/tdumpast.nim @@ -6,7 +6,7 @@ template plus(a, b: expr): expr = a + b macro call(e: expr): expr = - return newCall("foo", newStrLitNode("bar")) + result = newCall("foo", newStrLitNode("bar")) macro dumpAST(n: stmt): stmt = # dump AST as a side-effect and return the inner node diff --git a/tests/run/tstringinterp.nim b/tests/run/tstringinterp.nim index e1a55c94b..423e7bb61 100644 --- a/tests/run/tstringinterp.nim +++ b/tests/run/tstringinterp.nim @@ -26,7 +26,7 @@ macro formatStyleInterpolation(e: expr): expr = proc addString(s: string) = formatString.add(s) - proc addExpr(e: expr) = + proc addExpr(e: PNimrodNode) = arrayNode.add(e) formatString.add("$" & $(idx)) inc idx @@ -44,9 +44,9 @@ macro concatStyleInterpolation(e: expr): expr = var args: seq[PNimrodNode] newSeq(args, 0) - proc addString(s: string) = args.add(newStrLitNode(s)) - proc addExpr(e: expr) = args.add(e) - proc addDollar() = args.add(newStrLitNode"$") + proc addString(s: string) = args.add(newStrLitNode(s)) + proc addExpr(e: PNimrodNode) = args.add(e) + proc addDollar() = args.add(newStrLitNode"$") ProcessInterpolations(e) diff --git a/tests/run/tusingstatement.nim b/tests/run/tusingstatement.nim index 0017af556..ff81684a1 100644 --- a/tests/run/tusingstatement.nim +++ b/tests/run/tusingstatement.nim @@ -26,7 +26,7 @@ import # `opened` here could be an overloaded proc which any type can define. # A common practice can be returing an Optional[Resource] obj for which # `opened` is defined to `optional.hasValue` -macro using(e: expr) : stmt = +macro using(e: expr): stmt = if e.len != 2: error "Using statement: unexpected number of arguments. Got " & $e.len & ", expected: 1 or more variable assignments and a block" @@ -81,7 +81,7 @@ macro using(e: expr) : stmt = targetAst[0][1][1][0] = body targetAst[0][1][1][1][0] = finallyBlock - return targetAst + result = targetAst type TResource* = object |