diff options
author | LemonBoy <LemonBoy@users.noreply.github.com> | 2018-09-07 21:06:30 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-09-07 21:06:30 +0200 |
commit | e69d8ec416f9be8004a7ef37a3cf44edf8258585 (patch) | |
tree | 281818e7acac247eee1471fd3e7c4ae0d4532022 /compiler/semexprs.nim | |
parent | 90025e242db1f4b2f2bca186ee77ab1578545f15 (diff) | |
download | Nim-e69d8ec416f9be8004a7ef37a3cf44edf8258585.tar.gz |
Fix type comparison in semConv (#8907)
Fixes #8905
Diffstat (limited to 'compiler/semexprs.nim')
-rw-r--r-- | compiler/semexprs.nim | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index ce953f17c..e527b06cc 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -113,6 +113,7 @@ proc checkConvertible(c: PContext, castDest, src: PType): TConvStatus = if castDest.kind notin IntegralTypes+{tyRange}: result = convNotNeedeed return + # Save for later var d = skipTypes(castDest, abstractVar) var s = src if s.kind in tyUserTypeClasses and s.isResolvedUserTypeClass: @@ -135,7 +136,7 @@ proc checkConvertible(c: PContext, castDest, src: PType): TConvStatus = # we use d, s here to speed up that operation a bit: case cmpTypes(c, d, s) of isNone, isGeneric: - if not compareTypes(castDest, src, dcEqIgnoreDistinct): + if not compareTypes(castDest.skipTypes(abstractVar), src, dcEqIgnoreDistinct): result = convNotLegal else: discard |