* Fixes #17450

* Add missing test output
This commit is contained in:
Clyybber 2021-03-23 15:40:30 +01:00 • committed by GitHub
commit 5f0c520489
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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) let tmp = c.getTemp(s.parent[], ret.typ, ret.info)
tmp.sym.flags.incl sfSingleUsedTemp tmp.sym.flags.incl sfSingleUsedTemp
let cpy = if hasDestructor(c, ret.typ): let cpy = if hasDestructor(c, ret.typ):
s.parent[].final.add c.genDestroy(tmp)
moveOrCopy(tmp, ret, c, s, isDecl = true) moveOrCopy(tmp, ret, c, s, isDecl = true)
else: else:
newTree(nkFastAsgn, tmp, p(ret, c, s, normal)) newTree(nkFastAsgn, tmp, p(ret, c, s, normal))

View file

@ -107,6 +107,8 @@ sink
destroy destroy
copy copy
destroy destroy
(f: 1)
destroy
''' '''
""" """
@ -770,3 +772,15 @@ proc pair(): tuple[a: C, b: C] =
discard pair() 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"])] @[(input: @["KXSC", "BGMC"]), (input: @["PXFX"]), (input: @["WXRQ", "ZSCZD"])]
14 14
First tasks completed. First tasks completed.
Second tasks completed.''' Second tasks completed.
test1'''
""" """
import strutils, os, std / wordwrap import strutils, os, std / wordwrap
@ -241,3 +242,13 @@ when true:
test_string_b.setLen new_len_b test_string_b.setLen new_len_b
echo "Second tasks completed." echo "Second tasks completed."
# bug #17450
proc main =
var i = 1
echo:
block:
"test" & $i
main()