fix ICE in isUnresolvedSym (#13925)

Co-authored-by: cooldome <ariabushenko@bk.ru>
This commit is contained in:
cooldome 2020-04-08 13:16:25 +01:00 • committed by GitHub
commit b4e9f8e814
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -622,11 +622,12 @@ proc isAssignable(c: PContext, n: PNode; isUnsafeAddr=false): TAssignableResult
result = parampatterns.isAssignable(c.p.owner, n, isUnsafeAddr) result = parampatterns.isAssignable(c.p.owner, n, isUnsafeAddr)
proc isUnresolvedSym(s: PSym): bool = proc isUnresolvedSym(s: PSym): bool =
return s.kind == skGenericParam or result = s.kind == skGenericParam
tfInferrableStatic in s.typ.flags or if not result and s.typ != nil:
(s.kind == skParam and s.typ.isMetaType) or result = tfInferrableStatic in s.typ.flags or
(s.kind == skType and (s.kind == skParam and s.typ.isMetaType) or
s.typ.flags * {tfGenericTypeParam, tfImplicitTypeParam} != {}) (s.kind == skType and
s.typ.flags * {tfGenericTypeParam, tfImplicitTypeParam} != {})
proc hasUnresolvedArgs(c: PContext, n: PNode): bool = proc hasUnresolvedArgs(c: PContext, n: PNode): bool =
# Checks whether an expression depends on generic parameters that # Checks whether an expression depends on generic parameters that