diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/objects/tdefaultfieldscheck.nim | 9 | ||||
-rw-r--r-- | tests/objects/tobject_default_value.nim | 27 |
2 files changed, 30 insertions, 6 deletions
diff --git a/tests/objects/tdefaultfieldscheck.nim b/tests/objects/tdefaultfieldscheck.nim index d6feb2988..8a05439d9 100644 --- a/tests/objects/tdefaultfieldscheck.nim +++ b/tests/objects/tdefaultfieldscheck.nim @@ -4,16 +4,13 @@ discard """ nimout: ''' tdefaultfieldscheck.nim(14, 17) Error: type mismatch: got <string> but expected 'int' -tdefaultfieldscheck.nim(15, 20) Error: type mismatch: got <int literal(12)> but expected 'string' -tdefaultfieldscheck.nim(17, 16) Error: type mismatch: got <float64> but expected 'int' ''' """ + type Date* = object - name: int = "string" - time: string = 12 goal: float = 7 - fun: int = 1.4 + name: int = "string" -echo default(Date) \ No newline at end of file +echo default(Date) diff --git a/tests/objects/tobject_default_value.nim b/tests/objects/tobject_default_value.nim index 3af790da6..152b355f4 100644 --- a/tests/objects/tobject_default_value.nim +++ b/tests/objects/tobject_default_value.nim @@ -717,6 +717,33 @@ template main {.dirty.} = doAssert T().kind == B + block: # bug #22926 + type + Direction = enum + North + South + East + West + + ArrayObj1 = object + list: array[Direction, int] + + ArrayObj2 = object + list: array[Direction, int] = [1, 2, 3, 4] + + block: + var a: ArrayObj1 + doAssert a.list[West] == 0 + var b = default ArrayObj1 + doAssert b.list[North] == 0 + + + block: + var a: ArrayObj2 + doAssert a.list[West] == 0 + var b = default ArrayObj2 + doAssert b.list[North] == 1 + static: main() main() |