diff options
Diffstat (limited to 'compiler/semstmts.nim')
-rw-r--r-- | compiler/semstmts.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index e2f7b6303..c3d909824 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -1579,6 +1579,7 @@ proc semOverride(c: PContext, s: PSym, n: PNode) = localError(c.config, n.info, errGenerated, "signature for '" & s.name.s & "' must be proc[T: object](x: var T)") incl(s.flags, sfUsed) + incl(s.flags, sfOverriden) of "deepcopy", "=deepcopy": if s.typ.len == 2 and s.typ.sons[1].skipTypes(abstractInst).kind in {tyRef, tyPtr} and @@ -1607,9 +1608,11 @@ proc semOverride(c: PContext, s: PSym, n: PNode) = localError(c.config, n.info, errGenerated, "signature for 'deepCopy' must be proc[T: ptr|ref](x: T): T") incl(s.flags, sfUsed) + incl(s.flags, sfOverriden) of "=", "=sink": if s.magic == mAsgn: return incl(s.flags, sfUsed) + incl(s.flags, sfOverriden) let t = s.typ if t.len == 3 and t.sons[0] == nil and t.sons[1].kind == tyVar: var obj = t.sons[1].sons[0] |