make httpclient compile again via a workaround

This commit is contained in:
Araq 2017-10-15 00:52:22 +02:00
commit 3aaf1e4980

View file

@ -582,7 +582,10 @@ proc trackOperand(tracked: PEffects, n: PNode, paramType: PType) =
if n.kind == nkSym and isLocalVar(tracked, n.sym): if n.kind == nkSym and isLocalVar(tracked, n.sym):
makeVolatile(tracked, n.sym) makeVolatile(tracked, n.sym)
if paramType != nil and paramType.kind == tyProc and tfGcSafe in paramType.flags: if paramType != nil and paramType.kind == tyProc and tfGcSafe in paramType.flags:
if tfGcSafe notin a.typ.flags and not tracked.inEnforcedGcSafe: let argtype = skipTypes(a.typ, abstractInst)
# XXX figure out why this can be a non tyProc here. See httpclient.nim for an
# example that triggers it.
if argtype.kind == tyProc and notGcSafe(argtype) and not tracked.inEnforcedGcSafe:
localError(n.info, $n & " is not GC safe") localError(n.info, $n & " is not GC safe")
notNilCheck(tracked, n, paramType) notNilCheck(tracked, n, paramType)