Merge pull request #8108 from LemonBoy/fix-5958

Make `static` blocks introduce their own scope
This commit is contained in:
Andreas Rumpf 2018-06-26 23:16:40 +02:00 • committed by GitHub
commit ccb1514837
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 15 deletions

View file

@ -4,14 +4,12 @@ proc assertEq(arg0,arg1: string): void =
if arg0 != arg1:
raiseAssert("strings not equal:\n" & arg0 & "\n" & arg1)
static:
# a simple assignment of stmtList to another variable
var node: NimNode
# an assignment of stmtList into an array
var nodeArray: array[1, NimNode]
# an assignment of stmtList into a seq
var nodeSeq = newSeq[NimNode](2)
# a simple assignment of stmtList to another variable
var node {.compileTime.}: NimNode
# an assignment of stmtList into an array
var nodeArray {.compileTime.}: array[1, NimNode]
# an assignment of stmtList into a seq
var nodeSeq {.compileTime.} = newSeq[NimNode](2)
proc checkNode(arg: NimNode; name: string): void {. compileTime .} =
echo "checking ", name
@ -35,10 +33,10 @@ proc checkNode(arg: NimNode; name: string): void {. compileTime .} =
echo "OK"
static:
# the root node that is used to generate the Ast
var stmtList: NimNode
# the root node that is used to generate the Ast
var stmtList {.compileTime.}: NimNode
static:
stmtList = newStmtList(nnkDiscardStmt.newTree(newEmptyNode()))
checkNode(stmtList, "direct construction")

View file

@ -19,9 +19,9 @@ block:
var x = default(type(0))
# #6379
static:
import algorithm
import algorithm
static:
var numArray = [1, 2, 3, 4, -1]
numArray.sort(cmp)
assert numArray == [-1, 1, 2, 3, 4]