diff options
Diffstat (limited to 'lib/system/assign.nim')
-rw-r--r-- | lib/system/assign.nim | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/lib/system/assign.nim b/lib/system/assign.nim index 2b74e6682..d4826fe0c 100644 --- a/lib/system/assign.nim +++ b/lib/system/assign.nim @@ -104,19 +104,6 @@ proc genericAssignAux(dest, src: pointer, mt: PNimType, shallow: bool) = cast[pointer](s +% i *% mt.base.size), mt.base, shallow) of tyRef: unsureAsgnRef(cast[PPointer](dest), cast[PPointer](s)[]) - of tyOptAsRef: - let s2 = cast[PPointer](src)[] - let d = cast[PPointer](dest) - if s2 == nil: - unsureAsgnRef(d, s2) - else: - when declared(usrToCell): - let realType = usrToCell(s2).typ - else: - let realType = if mt.base.kind == tyObject: cast[ptr PNimType](s2)[] - else: mt.base - var z = newObj(realType, realType.base.size) - genericAssignAux(d, addr z, mt.base, shallow) else: copyMem(dest, src, mt.size) # copy raw bits @@ -143,7 +130,6 @@ when false: of tyPtr: k = "ptr" of tyRef: k = "ref" of tyVar: k = "var" - of tyOptAsRef: k = "optref" of tySequence: k = "seq" of tyProc: k = "proc" of tyPointer: k = "range" @@ -219,7 +205,7 @@ proc genericReset(dest: pointer, mt: PNimType) = var d = cast[ByteAddress](dest) sysAssert(mt != nil, "genericReset 2") case mt.kind - of tyString, tyRef, tyOptAsRef, tySequence: + of tyString, tyRef, tySequence: unsureAsgnRef(cast[PPointer](dest), nil) of tyTuple: genericResetAux(dest, mt.node) |