Do not raise ProveInit/WanrUninit for .noinit. var (#10566)
This commit is contained in:
parent
2e880c726b
commit
4c3f841212
1 changed files with 4 additions and 1 deletions
|
|
@ -232,7 +232,10 @@ proc listGcUnsafety(s: PSym; onlyWarning: bool; conf: ConfigRef) =
|
||||||
proc useVar(a: PEffects, n: PNode) =
|
proc useVar(a: PEffects, n: PNode) =
|
||||||
let s = n.sym
|
let s = n.sym
|
||||||
if isLocalVar(a, s):
|
if isLocalVar(a, s):
|
||||||
if s.id notin a.init:
|
if sfNoInit in s.flags:
|
||||||
|
# If the variable is explicitly marked as .noinit. do not emit any error
|
||||||
|
a.init.add s.id
|
||||||
|
elif s.id notin a.init:
|
||||||
if {tfNeedsInit, tfNotNil} * s.typ.flags != {}:
|
if {tfNeedsInit, tfNotNil} * s.typ.flags != {}:
|
||||||
message(a.config, n.info, warnProveInit, s.name.s)
|
message(a.config, n.info, warnProveInit, s.name.s)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue