diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2023-03-16 23:06:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-16 16:06:26 +0100 |
commit | b5ee81fd234c690f736a8f196a234c11a32e3910 (patch) | |
tree | 4e6bc085d41a52761cbe6702206939ec89b031d3 /tests/arc/tcaseobjcopy.nim | |
parent | 6552a27ec1e973d1e9a3e002b2e48c8206bf35a5 (diff) | |
download | Nim-b5ee81fd234c690f736a8f196a234c11a32e3910.tar.gz |
fix #18977; disallow change branch of an object variant in ORC (#21526)
* fix #18977 disallow change branch of an object variant in ORC * check errors for goto exception * fixes conditions * fixes tests * add a test case for #18977
Diffstat (limited to 'tests/arc/tcaseobjcopy.nim')
-rw-r--r-- | tests/arc/tcaseobjcopy.nim | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/arc/tcaseobjcopy.nim b/tests/arc/tcaseobjcopy.nim index ed07b404e..fb26a4973 100644 --- a/tests/arc/tcaseobjcopy.nim +++ b/tests/arc/tcaseobjcopy.nim @@ -169,18 +169,23 @@ proc test_myobject = x.x1 = "x1" x.x2 = "x2" x.y1 = "ljhkjhkjh" - x.kind1 = true + {.cast(uncheckedAssign).}: + x.kind1 = true x.y2 = @["1", "2"] - x.kind2 = true + {.cast(uncheckedAssign).}: + x.kind2 = true x.z1 = "yes" - x.kind2 = false + {.cast(uncheckedAssign).}: + x.kind2 = false x.z2 = @["1", "2"] - x.kind2 = true + {.cast(uncheckedAssign).}: + x.kind2 = true x.z1 = "yes" x.kind2 = true # should be no effect doAssert(x.z1 == "yes") - x.kind2 = false - x.kind1 = x.kind2 # support self assignment with effect + {.cast(uncheckedAssign).}: + x.kind2 = false + x.kind1 = x.kind2 # support self assignment with effect try: x.kind1 = x.flag # flag is not accesible @@ -206,7 +211,8 @@ type error*: string proc init(): RocksDBResult[string] = - result.ok = true + {.cast(uncheckedAssign).}: + result.ok = true result.value = "ok" echo init() @@ -221,7 +227,8 @@ type MyObj = object of true: x1: string var a = MyObj(kind: false, x0: 1234) -a.kind = true +{.cast(uncheckedAssign).}: + a.kind = true doAssert(a.x1 == "") block: |