* Fixes #17450

* Add missing test output
This commit is contained in:
Clyybber
2021-03-23 16:30:49 +01:00
committed by GitHub
parent 97f51ed7c2
commit 833084b671
3 changed files with 27 additions and 1 deletions

View File

@@ -573,6 +573,7 @@ template processScopeExpr(c: var Con; s: var Scope; ret: PNode, processCall: unt
let tmp = c.getTemp(s.parent[], ret.typ, ret.info)
tmp.sym.flags.incl sfSingleUsedTemp
let cpy = if hasDestructor(c, ret.typ):
s.parent[].final.add c.genDestroy(tmp)
moveOrCopy(tmp, ret, c, s, isDecl = true)
else:
newTree(nkFastAsgn, tmp, p(ret, c, s, normal))

View File

@@ -107,6 +107,8 @@ sink
destroy
copy
destroy
(f: 1)
destroy
'''
"""
@@ -770,3 +772,15 @@ proc pair(): tuple[a: C, b: C] =
discard pair()
# bug #17450
proc noConsume(x: OO) {.nosinks.} = echo x
proc main3 =
var i = 1
noConsume:
block:
OO(f: i)
main3()

View File

@@ -5,7 +5,8 @@ discard """
@[(input: @["KXSC", "BGMC"]), (input: @["PXFX"]), (input: @["WXRQ", "ZSCZD"])]
14
First tasks completed.
Second tasks completed.'''
Second tasks completed.
test1'''
"""
import strutils, os, std / wordwrap
@@ -241,3 +242,13 @@ when true:
test_string_b.setLen new_len_b
echo "Second tasks completed."
# bug #17450
proc main =
var i = 1
echo:
block:
"test" & $i
main()