This commit is contained in:
Araq
2017-11-23 03:12:09 +01:00
parent dee5e63f62
commit 96ddf6972d
2 changed files with 16 additions and 1 deletions

View File

@@ -525,7 +525,8 @@ proc notNilCheck(tracked: PEffects, n: PNode, paramType: PType) =
# addr(x[]) can't be proven, but addr(x) can:
if not containsNode(n, {nkDerefExpr, nkHiddenDeref}): return
elif (n.kind == nkSym and n.sym.kind in routineKinds) or
n.kind in procDefs+{nkObjConstr, nkBracket, nkClosure}:
(n.kind in procDefs+{nkObjConstr, nkBracket, nkClosure}) or
(n.kind in nkCallKinds and n[0].kind == nkSym and n[0].sym.magic == mArrToSeq):
# 'p' is not nil obviously:
return
case impliesNotNil(tracked.guards, n)