diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2024-08-22 13:20:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-22 07:20:00 +0200 |
commit | ac0179ced9a85a0a04f1e3d4f038fb989498d008 (patch) | |
tree | 46cc376b5308203ee20aa0c6f0599ee6978948c1 | |
parent | 2311049b27d6a46b6df53ecf4bbe73a598bedd65 (diff) | |
download | Nim-ac0179ced9a85a0a04f1e3d4f038fb989498d008.tar.gz |
fixes #23943; simple default value for range (#23996)
fixes #23943 --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
-rw-r--r-- | compiler/semstmts.nim | 5 | ||||
-rw-r--r-- | tests/objects/tobject_default_value.nim | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 7e55a7046..185441815 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -829,6 +829,11 @@ proc semVarOrLet(c: PContext, n: PNode, symkind: TSymKind): PNode = var typFlags: TTypeAllowedFlags = {} var def: PNode = c.graph.emptyNode + if typ != nil and typ.kind == tyRange and + c.graph.config.isDefined("nimPreviewRangeDefault") and + a[^1].kind == nkEmpty: + a[^1] = firstRange(c.config, typ) + if a[^1].kind != nkEmpty: def = semExprWithType(c, a[^1], {efTypeAllowed}, typ) diff --git a/tests/objects/tobject_default_value.nim b/tests/objects/tobject_default_value.nim index 801a453c9..0cd05e4f3 100644 --- a/tests/objects/tobject_default_value.nim +++ b/tests/objects/tobject_default_value.nim @@ -771,5 +771,10 @@ template main {.dirty.} = var s = default(Object) doAssert s.id == 1.2 + block: # bug #23943 + type limited_int = range[1..20] + var d: limited_int; + doAssert d == 1 + static: main() main() |