* fixes #20958; fixes the return type of slice function * add a testcase
This commit is contained in:
parent
d4afa53fd5
commit
3d5edb41be
2 changed files with 15 additions and 0 deletions
|
|
@ -402,6 +402,9 @@ proc transformSlices(g: ModuleGraph; idgen: IdGenerator; n: PNode): PNode =
|
||||||
let op = n[0].sym
|
let op = n[0].sym
|
||||||
if op.name.s == "[]" and op.fromSystem:
|
if op.name.s == "[]" and op.fromSystem:
|
||||||
result = copyNode(n)
|
result = copyNode(n)
|
||||||
|
var typ = newType(tyOpenArray, nextTypeId(g.idgen), result.typ.owner)
|
||||||
|
typ.add result.typ[0]
|
||||||
|
result.typ = typ
|
||||||
let opSlice = newSymNode(createMagic(g, idgen, "slice", mSlice))
|
let opSlice = newSymNode(createMagic(g, idgen, "slice", mSlice))
|
||||||
opSlice.typ = getSysType(g, n.info, tyInt)
|
opSlice.typ = getSysType(g, n.info, tyInt)
|
||||||
result.add opSlice
|
result.add opSlice
|
||||||
|
|
|
||||||
|
|
@ -61,3 +61,15 @@ maino() # Doesn't work outside a proc
|
||||||
|
|
||||||
when true:
|
when true:
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
block two:
|
||||||
|
proc f(a: openArray[int]) =
|
||||||
|
discard
|
||||||
|
|
||||||
|
proc main() =
|
||||||
|
var a: array[0..9, int] = [0,1,2,3,4,5,6,7,8,9]
|
||||||
|
parallel:
|
||||||
|
spawn f(a[0..2])
|
||||||
|
|
||||||
|
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue