diff options
author | Zahary Karadjov <zahary@gmail.com> | 2014-03-24 12:17:22 +0200 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2014-03-24 12:17:22 +0200 |
commit | e8c50640d7a4d386197b8508c82b26f5563060cb (patch) | |
tree | 2ea504e656ae44e0b78c0b7030b14f32bccc3942 | |
parent | d310b01db1c6f2c8e63a561c40352b17978e1bdb (diff) | |
download | Nim-e8c50640d7a4d386197b8508c82b26f5563060cb.tar.gz |
failing test case preventing the use of --gc:v2: tsymchoicefield
-rw-r--r-- | lib/core/macros.nim | 6 | ||||
-rw-r--r-- | tests/template/tsymchoicefield.nim | 12 | ||||
-rw-r--r-- | tests/vm/tstaticprintseq.nim | 11 |
3 files changed, 22 insertions, 7 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index db2bbc5a4..8ccad8fe3 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -48,17 +48,17 @@ type nnkYieldStmt, nnkTryStmt, nnkFinally, nnkRaiseStmt, nnkReturnStmt, nnkBreakStmt, nnkContinueStmt, nnkBlockStmt, nnkStaticStmt, nnkDiscardStmt, nnkStmtList, - nnkImportStmt, nnkImportExceptStmt, nnkExportStmt, nnkExportExceptStmt, nnkFromStmt, nnkIncludeStmt, - nnkBindStmt, nnkMixinStmt, nnkUsingStmt, nnkCommentStmt, nnkStmtListExpr, nnkBlockExpr, - nnkStmtListType, nnkBlockType, nnkTypeOfExpr, nnkObjectTy, + nnkStmtListType, nnkBlockType, + nnkWith, nnkWithout, + nnkTypeOfExpr, nnkObjectTy, nnkTupleTy, nnkTypeClassTy, nnkStaticTy, nnkRecList, nnkRecCase, nnkRecWhen, nnkRefTy, nnkPtrTy, nnkVarTy, diff --git a/tests/template/tsymchoicefield.nim b/tests/template/tsymchoicefield.nim new file mode 100644 index 000000000..ab05500bf --- /dev/null +++ b/tests/template/tsymchoicefield.nim @@ -0,0 +1,12 @@ +type Foo = object + len: int + +var f = Foo(len: 40) + +template getLen(f: Foo): expr = f.len + +echo f.getLen +# This fails, because `len` gets the nkOpenSymChoice +# treatment inside the template early pass and then +# it can't be recognized as a field anymore + diff --git a/tests/vm/tstaticprintseq.nim b/tests/vm/tstaticprintseq.nim index 1fe65cca5..3dfd0048d 100644 --- a/tests/vm/tstaticprintseq.nim +++ b/tests/vm/tstaticprintseq.nim @@ -13,6 +13,8 @@ discard """ 3 aa bb +11 +22 aa bb 24''' @@ -45,9 +47,11 @@ type const data: TData = (@["aa", "bb"], @[11, 22]) static: - var m = data - for x in m.letters: - echo x + var m1 = data + for x in m1.letters: echo x + + var m2: TData = data + for x in m2.numbers: echo x macro ff(d: static[TData]): stmt = for x in d.letters: @@ -55,7 +59,6 @@ macro ff(d: static[TData]): stmt = ff(data) - # bug #1010 proc `*==`(x: var int, y: int) {.inline, noSideEffect.} = |