Fixed noinit pragma for closure variables (#20101)
This commit is contained in:
parent
8ef509b85b
commit
424e87fd09
2 changed files with 3 additions and 2 deletions
|
|
@ -405,7 +405,7 @@ proc genClosureVar(p: BProc, a: PNode) =
|
||||||
genLineDir(p, a)
|
genLineDir(p, a)
|
||||||
if immediateAsgn:
|
if immediateAsgn:
|
||||||
loadInto(p, a[0], a[2], v)
|
loadInto(p, a[0], a[2], v)
|
||||||
else:
|
elif sfNoInit notin a[0][1].sym.flags:
|
||||||
constructLoc(p, v)
|
constructLoc(p, v)
|
||||||
|
|
||||||
proc genVarStmt(p: BProc, n: PNode) =
|
proc genVarStmt(p: BProc, n: PNode) =
|
||||||
|
|
|
||||||
|
|
@ -241,7 +241,8 @@ proc addField*(obj: PType; s: PSym; cache: IdentCache; idgen: IdGenerator): PSym
|
||||||
assert t.kind != tyTyped
|
assert t.kind != tyTyped
|
||||||
propagateToOwner(obj, t)
|
propagateToOwner(obj, t)
|
||||||
field.position = obj.n.len
|
field.position = obj.n.len
|
||||||
field.flags = s.flags * {sfCursor}
|
# sfNoInit flag for skField is used in closureiterator codegen
|
||||||
|
field.flags = s.flags * {sfCursor, sfNoInit}
|
||||||
obj.n.add newSymNode(field)
|
obj.n.add newSymNode(field)
|
||||||
fieldCheck()
|
fieldCheck()
|
||||||
result = field
|
result = field
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue