summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/objects/tdefaultfieldscheck.nim9
-rw-r--r--tests/objects/tobject_default_value.nim27
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()