Merge pull request #2856 from fowlmouth/patch-4
made string compatible with openarray[char]
This commit is contained in:
commit
116a60caeb
2 changed files with 28 additions and 0 deletions
|
|
@ -748,6 +748,12 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, doBind = true): TTypeRelation =
|
|||
result = isConvertible
|
||||
elif typeRel(c, base(f), a.sons[0]) >= isGeneric:
|
||||
result = isConvertible
|
||||
of tyString:
|
||||
if f.kind == tyOpenArray:
|
||||
if f.sons[0].kind == tyChar:
|
||||
result = isConvertible
|
||||
elif f.sons[0].kind == tyGenericParam and typeRel(c, base(f), base(a)) >= isGeneric:
|
||||
result = isConvertible
|
||||
else: discard
|
||||
of tySequence:
|
||||
case a.kind
|
||||
|
|
|
|||
22
tests/typerel/tstr_as_openarray.nim
Normal file
22
tests/typerel/tstr_as_openarray.nim
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
discard """
|
||||
output: '''success'''
|
||||
"""
|
||||
var s = "HI"
|
||||
|
||||
proc x (zz: openarray[char]) =
|
||||
discard
|
||||
|
||||
x s
|
||||
|
||||
proc z [T] (zz: openarray[T]) =
|
||||
discard
|
||||
|
||||
z s
|
||||
z([s,s,s])
|
||||
|
||||
proc y [T] (arg: var openarray[T]) =
|
||||
arg[0] = 'X'
|
||||
y s
|
||||
doAssert s == "XI"
|
||||
|
||||
echo "success"
|
||||
Loading…
Add table
Add a link
Reference in a new issue