this ensures libp2p continues to compile [backport] (#18908)

This commit is contained in:
Andreas Rumpf
2021-09-27 19:25:00 +02:00
committed by GitHub
parent 5325a366e7
commit cdf9ac675b
2 changed files with 16 additions and 5 deletions

View File

@@ -855,10 +855,15 @@ proc closureSetup(p: BProc, prc: PSym) =
[rdLoc(env.loc), getTypeDesc(p.module, env.typ)])
proc containsResult(n: PNode): bool =
if n.kind == nkSym and n.sym.kind == skResult:
result = true
result = false
case n.kind
of nkEmpty..pred(nkSym), succ(nkSym)..nkNilLit, nkFormalParams:
discard
of nkSym:
if n.sym.kind == skResult:
result = true
else:
for i in 0..<n.safeLen:
for i in 0..<n.len:
if containsResult(n[i]): return true
const harmless = {nkConstSection, nkTypeSection, nkEmpty, nkCommentStmt, nkTemplateDef,

View File

@@ -441,8 +441,14 @@ proc sameTree*(a, b: PNode): bool =
proc hasSubTree(n, x: PNode): bool =
if n.sameTree(x): result = true
else:
for i in 0..n.safeLen-1:
if hasSubTree(n[i], x): return true
case n.kind
of nkEmpty..nkNilLit:
result = n.sameTree(x)
of nkFormalParams:
discard
else:
for i in 0..<n.len:
if hasSubTree(n[i], x): return true
proc invalidateFacts*(s: var seq[PNode], n: PNode) =
# We are able to guard local vars (as opposed to 'let' variables)!