mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 09:54:49 +00:00
Fixes issue with CountTableRef and getOrDefault:
```{nimrod}
import tables
proc main() =
const testKey = "TESTKEY"
let t: CountTableRef[string] = newCountTable[string]()
# Before, does not compile with error message:
#test_counttable.nim(7, 43) template/generic instantiation from here
#lib/pure/collections/tables.nim(117, 21) template/generic instantiation from here
#lib/pure/collections/tableimpl.nim(32, 27) Error: undeclared field: 'hcode'
echo "Count of " & testKey & " is " & $t.getOrDefault(testKey)
t.inc(testKey,3)
echo "Count of " & testKey & " is " & $t.getOrDefault(testKey)
when isMainModule:
main()
```
Previously, `getOrDefault` for CountTableRef objects was calling the
`getOrDefaultImpl` template, which used the t.data.hcode object -
assuming a Table or similar object. Because CountTableRef didn't have
an hcode in its data tuples, this wouldn't compile. Changed to be the
same as `CountTable#getOrDefault`.