This commit is contained in:
Araq
2016-11-30 21:10:22 +01:00
parent 20cf28adde
commit 7b44896e03
2 changed files with 27 additions and 1 deletions

View File

@@ -1274,7 +1274,8 @@ proc propertyWriteAccess(c: PContext, n, nOrig, a: PNode): PNode =
# this is ugly. XXX Semantic checking should use the ``nfSem`` flag for
# nodes?
let aOrig = nOrig[0]
result = newNode(nkCall, n.info, sons = @[setterId, a[0], semExpr(c, n[1])])
result = newNode(nkCall, n.info, sons = @[setterId, a[0],
semExprWithType(c, n[1])])
result.flags.incl nfDotSetter
let orig = newNode(nkCall, n.info, sons = @[setterId, aOrig[0], nOrig[1]])
result = semOverloadedCallAnalyseEffects(c, result, orig, {})

View File

@@ -0,0 +1,25 @@
discard """
output: "c"
"""
# bug #5079
import tables, strutils
type Test = ref object
s: string
proc `test=`(t: Test, s: string) =
t.s = s
var t = Test()
#t.test = spaces(2) # -- works
var a = newTable[string, string]()
a["b"] = "c"
#t.s = a["b"] # -- works
#t.test a["b"] # -- works
t.test = a["b"] # -- prints "out of memory" and quits
echo t.s