mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-05 04:27:44 +00:00
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user