potential fix for semgeneric formal params (#17494)

marked locations where analysis of return formal param is done prior to
args. This might fix some subtle bugs.
This commit is contained in:
Saem Ghani 2021-03-24 03:55:58 -07:00 • committed by GitHub
commit 7366a3da37
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 2 deletions

View file

@ -85,6 +85,9 @@ proc checkIsolate*(n: PNode): bool =
of nkCharLit..nkNilLit:
result = true
of nkCallKinds:
# XXX: as long as we don't update the analysis while examining arguments
# we can do an early check of the return type, otherwise this is a
# bug and needs to be moved below
if n[0].typ.flags * {tfGcSafe, tfNoSideEffect} == {}:
return false
for i in 1..<n.len: