This commit is contained in:
cooldome 2020-08-28 16:57:52 +01:00 • committed by GitHub
commit f8c48fc186
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 2 deletions

View file

@ -699,8 +699,9 @@ proc p(n: PNode; c: var Con; s: var Scope; mode: ProcessMode): PNode =
elif n.kind in {nkObjDownConv, nkObjUpConv}: elif n.kind in {nkObjDownConv, nkObjUpConv}:
result = copyTree(n) result = copyTree(n)
result[0] = p(n[0], c, s, sinkArg) result[0] = p(n[0], c, s, sinkArg)
elif n.typ == nil: elif n.typ == nil or n.typ.skipTypes({tyGenericInst, tyAlias, tySink, tyVar}).kind == tyOpenArray:
# 'raise X' can be part of a 'case' expression. Deal with it here: # 'raise X' can be part of a 'case' expression. Deal with it here.
# openarrays require perfect forwarding
result = p(n, c, s, normal) result = p(n, c, s, normal)
else: else:
# copy objects that are not temporary but passed to a 'sink' parameter # copy objects that are not temporary but passed to a 'sink' parameter

View file

@ -3,6 +3,7 @@ discard """
output: ''' output: '''
hello hello
hello hello
@[4, 3, 2, 1]
''' '''
""" """
@ -11,3 +12,18 @@ import dmodule
var val = parseMinValue() var val = parseMinValue()
if val.kind == minDictionary: if val.kind == minDictionary:
echo val echo val
#------------------------------------------------------------------------------
# Issue #15035
#------------------------------------------------------------------------------
proc countRun(lst: sink openArray[int]): int =
discard
proc timSort(lst: var openArray[int]) =
let run = countRun(lst)
var a = @[4, 3, 2, 1]
timSort(a)
echo a