mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-04 12:07:51 +00:00
supports default for range types using firstOrd with nimPreviewRangeDefault (#23950)
ref https://github.com/nim-lang/Nim/issues/23943
This commit is contained in:
@@ -121,7 +121,7 @@ template main {.dirty.} =
|
||||
rVal: R = default(R) # Works fine
|
||||
objVal = default(Obj)
|
||||
|
||||
doAssert rVal == 0 # it should be 1
|
||||
doAssert rVal == 1
|
||||
doAssert objVal.r == 1
|
||||
|
||||
block: # bug #16744
|
||||
@@ -134,7 +134,7 @@ template main {.dirty.} =
|
||||
rVal: R = default(R) # Works fine
|
||||
objVal = Obj()
|
||||
|
||||
doAssert rVal == 0 # it should be 1
|
||||
doAssert rVal == 1 # it should be 1
|
||||
doAssert objVal.r == 1
|
||||
|
||||
block: # bug #3608
|
||||
@@ -745,5 +745,19 @@ template main {.dirty.} =
|
||||
doAssert b.list[North] == 1
|
||||
|
||||
|
||||
block:
|
||||
type
|
||||
range1 = range[1..10]
|
||||
range2 = range[-1..10]
|
||||
|
||||
proc foo =
|
||||
doAssert default(range1) == 1
|
||||
doAssert default(range2) == -1
|
||||
|
||||
let s = default(array[5, range1])
|
||||
doAssert s == [range1 1, 1, 1, 1, 1]
|
||||
|
||||
foo()
|
||||
|
||||
static: main()
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user