summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-02-20 14:29:09 +0100
committerAraq <rumpf_a@web.de>2019-02-20 14:29:18 +0100
commit6c10d331db8c00accc7ac2884ac46c89ef72cc3b (patch)
tree624e9ef15fe85037f6256bc2891031017870d599
parent873539b50da56bbfe4c18283bfe239c29d52e81c (diff)
downloadNim-6c10d331db8c00accc7ac2884ac46c89ef72cc3b.tar.gz
gc:destructors: slightly more stuff compiles
-rw-r--r--compiler/semtypes.nim3
-rw-r--r--lib/system.nim5
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