I came across a situation where using a `let` statement on a value object
created a reference. I then correlated it with [this closed bug
report](https://forum.nim-lang.org/a43!GG4hjurx). So, is this expected
behavior?:
Works as normal:
var data: Table[string, string]
data["key"] = "val"
let oldData = data
data.clear()
echo $oldData # Echoes {"key": "val"} as expected
Run
Unexpected (uses `let`):
proc doSomething(self: var Table[string, string]) =
let data = self
self.clear()
echo $data # Echoes {} which isn't expected
var data: Table[string, string]
data["key"] = "val"
data.doSomething()
Run
Works as normal (uses `var`):
proc doSomething(self: var Table[string, string]) =
var data = self
self.clear()
echo $data # Echoes {"key": "val"} as expected
var data: Table[string, string]
data["key"] = "val"
data.doSomething()
Run