Do not raise ProveInit/WanrUninit for .noinit. var (#10566)

This commit is contained in:
LemonBoy
2019-02-06 09:14:09 +01:00
committed by Andreas Rumpf
parent 2e880c726b
commit 4c3f841212

View File

@@ -232,7 +232,10 @@ proc listGcUnsafety(s: PSym; onlyWarning: bool; conf: ConfigRef) =
proc useVar(a: PEffects, n: PNode) =
let s = n.sym
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 != {}:
message(a.config, n.info, warnProveInit, s.name.s)
else: