mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-08 14:03:23 +00:00
fixes #5079
This commit is contained in:
@@ -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, {})
|
||||
|
||||
25
tests/ccgbugs/tmissingderef2.nim
Normal file
25
tests/ccgbugs/tmissingderef2.nim
Normal 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
|
||||
Reference in New Issue
Block a user