diff options
-rw-r--r-- | compiler/semtypes.nim | 3 | ||||
-rw-r--r-- | lib/system.nim | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index a497e1eae..9976e9302 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -1613,7 +1613,8 @@ proc semTypeNode(c: PContext, n: PNode, prev: PType): PType = if result.len > 0: var base = result[0] if base.kind in {tyGenericInst, tyAlias, tySink}: base = lastSon(base) - if base.kind != tyGenericParam: + if not containsGenericType(base): + # base.kind != tyGenericParam: c.typesWithOps.add((result, result)) else: result = semContainer(c, n, tySequence, "seq", prev) diff --git a/lib/system.nim b/lib/system.nim index e8a04ce9d..71d1458fd 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2559,7 +2559,10 @@ proc `==`*[T](x, y: seq[T]): bool {.noSideEffect.} = else: when not defined(JS): proc seqToPtr[T](x: seq[T]): pointer {.inline, nosideeffect.} = - result = cast[pointer](x) + when defined(gcDestructors): + result = cast[NimSeqV2[T]](x).p + else: + result = cast[pointer](x) if seqToPtr(x) == seqToPtr(y): return true |