diff options
author | Zahary Karadjov <zahary@gmail.com> | 2017-06-19 23:01:41 +0300 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-06-20 11:29:42 +0200 |
commit | 07d50cedf012ff8ca39c61c0ba5c43e5d588e630 (patch) | |
tree | b9864682618a22350123b3a3ae3f61c52382d18d /compiler/semexprs.nim | |
parent | 21ce7b2af4163b2513f3c6cbf2f52929d684bcb3 (diff) | |
download | Nim-07d50cedf012ff8ca39c61c0ba5c43e5d588e630.tar.gz |
Fix #5983
Diffstat (limited to 'compiler/semexprs.nim')
-rw-r--r-- | compiler/semexprs.nim | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 8169e359a..08a2e2ce9 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -106,7 +106,10 @@ proc checkConvertible(c: PContext, castDest, src: PType): TConvStatus = result = convNotNeedeed return var d = skipTypes(castDest, abstractVar) - var s = skipTypes(src, abstractVar-{tyTypeDesc}) + var s = src + if s.kind in tyUserTypeClasses and s.isResolvedUserTypeClass: + s = s.lastSon + s = skipTypes(s, abstractVar-{tyTypeDesc}) var pointers = 0 while (d != nil) and (d.kind in {tyPtr, tyRef}) and (d.kind == s.kind): d = d.lastSon |