gc:destructors: slightly more stuff compiles
This commit is contained in:
parent
873539b50d
commit
6c10d331db
2 changed files with 6 additions and 2 deletions
|
|
@ -1613,7 +1613,8 @@ proc semTypeNode(c: PContext, n: PNode, prev: PType): PType =
|
||||||
if result.len > 0:
|
if result.len > 0:
|
||||||
var base = result[0]
|
var base = result[0]
|
||||||
if base.kind in {tyGenericInst, tyAlias, tySink}: base = lastSon(base)
|
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))
|
c.typesWithOps.add((result, result))
|
||||||
else:
|
else:
|
||||||
result = semContainer(c, n, tySequence, "seq", prev)
|
result = semContainer(c, n, tySequence, "seq", prev)
|
||||||
|
|
|
||||||
|
|
@ -2559,7 +2559,10 @@ proc `==`*[T](x, y: seq[T]): bool {.noSideEffect.} =
|
||||||
else:
|
else:
|
||||||
when not defined(JS):
|
when not defined(JS):
|
||||||
proc seqToPtr[T](x: seq[T]): pointer {.inline, nosideeffect.} =
|
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):
|
if seqToPtr(x) == seqToPtr(y):
|
||||||
return true
|
return true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue