summary refs log tree commit diff stats
path: root/tests/stdlib/tstrutils.nim
diff options
context:
space:
mode:
authormetagn <metagngn@gmail.com>2023-09-19 10:14:55 +0300
committerGitHub <noreply@github.com>2023-09-19 09:14:55 +0200
commit51cb493b221e704efce126049f9f320eb1cb1a36 (patch)
tree674f43248692a3c9269e5e93161fc49dc8130bae /tests/stdlib/tstrutils.nim
parentb542be1e7de067573370a3159b0812396309ef8b (diff)
downloadNim-51cb493b221e704efce126049f9f320eb1cb1a36.tar.gz
make parseEnum skip type aliases for enum type sym (#22727)
fixes #22726
Diffstat (limited to 'tests/stdlib/tstrutils.nim')
-rw-r--r--tests/stdlib/tstrutils.nim19
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/stdlib/tstrutils.nim b/tests/stdlib/tstrutils.nim
index 847e22656..9cc65f218 100644
--- a/tests/stdlib/tstrutils.nim
+++ b/tests/stdlib/tstrutils.nim
@@ -679,11 +679,22 @@ template main() =
       doAssert b == f2
       doAssert c == f3
 
-  block: # parseEnum TODO: merge above
-    type MyEnum = enum enA, enB, enC, enuD, enE
-    doAssert parseEnum[MyEnum]("enu_D") == enuD
+    block:
+      type MyEnum = enum enA, enB, enC, enuD, enE
+      doAssert parseEnum[MyEnum]("enu_D") == enuD
 
-    doAssert parseEnum("invalid enum value", enC) == enC
+      doAssert parseEnum("invalid enum value", enC) == enC
+    
+    block: # issue #22726
+      type SomeEnum = enum A, B, C
+
+      proc assignEnum(dest: var enum, s: string) =
+        type ty = typeof(dest)
+        dest = parseEnum[ty](s)
+      
+      var v: SomeEnum
+      v.assignEnum("A")
+      doAssert v == A
 
   block: # indentation
     doAssert 0 == indentation """