From b4e9f8e814373fc38741736197d88475663ce758 Mon Sep 17 00:00:00 2001 From: cooldome Date: Wed, 8 Apr 2020 13:16:25 +0100 Subject: [PATCH] fix ICE in isUnresolvedSym (#13925) Co-authored-by: cooldome --- compiler/semexprs.nim | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 5f82eb1e7..826cf51ba 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -622,11 +622,12 @@ proc isAssignable(c: PContext, n: PNode; isUnsafeAddr=false): TAssignableResult result = parampatterns.isAssignable(c.p.owner, n, isUnsafeAddr) proc isUnresolvedSym(s: PSym): bool = - return s.kind == skGenericParam or - tfInferrableStatic in s.typ.flags or - (s.kind == skParam and s.typ.isMetaType) or - (s.kind == skType and - s.typ.flags * {tfGenericTypeParam, tfImplicitTypeParam} != {}) + result = s.kind == skGenericParam + if not result and s.typ != nil: + result = tfInferrableStatic in s.typ.flags or + (s.kind == skParam and s.typ.isMetaType) or + (s.kind == skType and + s.typ.flags * {tfGenericTypeParam, tfImplicitTypeParam} != {}) proc hasUnresolvedArgs(c: PContext, n: PNode): bool = # Checks whether an expression depends on generic parameters that