diff options
-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() |