diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2017-10-10 13:18:32 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-10-10 13:18:32 +0200 |
commit | 13f974336eff453fe4384ef2566f069b6fde75a1 (patch) | |
tree | b0849d565dafa26ae4d062e4bd18981c00714241 /compiler/sigmatch.nim | |
parent | 8bd9c7a4e6cb789cd0e37d30c4c59080744cea39 (diff) | |
parent | 91981c07bd9335dbd32afb636bd1437a588f39eb (diff) | |
download | Nim-13f974336eff453fe4384ef2566f069b6fde75a1.tar.gz |
Merge branch 'araq-stringify-array' into devel
Diffstat (limited to 'compiler/sigmatch.nim')
-rw-r--r-- | compiler/sigmatch.nim | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index f2bc24399..50d4178b6 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -1288,12 +1288,13 @@ proc typeRelImpl(c: var TCandidate, f, aOrig: PType, of tyString: result = isConvertible of tyPtr: # ptr[Tag, char] is not convertible to 'cstring' for now: - if a.len == 1 and a.sons[0].kind == tyChar: result = isConvertible - of tyArray: - if (firstOrd(a.sons[0]) == 0) and - (skipTypes(a.sons[0], {tyRange}).kind in {tyInt..tyInt64}) and - (a.sons[1].kind == tyChar): - result = isConvertible + if a.len == 1: + let pointsTo = a.sons[0].skipTypes(abstractInst) + if pointsTo.kind == tyChar: result = isConvertible + elif pointsTo.kind == tyArray and firstOrd(pointsTo.sons[0]) == 0 and + skipTypes(pointsTo.sons[0], {tyRange}).kind in {tyInt..tyInt64} and + pointsTo.sons[1].kind == tyChar: + result = isConvertible else: discard of tyEmpty, tyVoid: |