mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
fixes a subtle tables.nim regression
This commit is contained in:
@@ -307,6 +307,22 @@ proc initTable*[A, B](initialSize = defaultInitialSize): Table[A, B] =
|
||||
b = initTable[char, seq[int]]()
|
||||
initImpl(result, initialSize)
|
||||
|
||||
proc `[]=`*[A, B](t: var Table[A, B], key: A, val: B) =
|
||||
## Inserts a ``(key, value)`` pair into ``t``.
|
||||
##
|
||||
## See also:
|
||||
## * `[] proc<#[],Table[A,B],A>`_ for retrieving a value of a key
|
||||
## * `hasKeyOrPut proc<#hasKeyOrPut,Table[A,B],A,B>`_
|
||||
## * `mgetOrPut proc<#mgetOrPut,Table[A,B],A,B>`_
|
||||
## * `del proc<#del,Table[A,B],A>`_ for removing a key from the table
|
||||
runnableExamples:
|
||||
var a = initTable[char, int]()
|
||||
a['x'] = 7
|
||||
a['y'] = 33
|
||||
doAssert a == {'x': 7, 'y': 33}.toTable
|
||||
|
||||
putImpl(enlarge)
|
||||
|
||||
proc toTable*[A, B](pairs: openArray[(A, B)]): Table[A, B] =
|
||||
## Creates a new hash table that contains the given ``pairs``.
|
||||
##
|
||||
@@ -362,22 +378,6 @@ proc `[]`*[A, B](t: var Table[A, B], key: A): var B =
|
||||
## the table
|
||||
get(t, key)
|
||||
|
||||
proc `[]=`*[A, B](t: var Table[A, B], key: A, val: B) =
|
||||
## Inserts a ``(key, value)`` pair into ``t``.
|
||||
##
|
||||
## See also:
|
||||
## * `[] proc<#[],Table[A,B],A>`_ for retrieving a value of a key
|
||||
## * `hasKeyOrPut proc<#hasKeyOrPut,Table[A,B],A,B>`_
|
||||
## * `mgetOrPut proc<#mgetOrPut,Table[A,B],A,B>`_
|
||||
## * `del proc<#del,Table[A,B],A>`_ for removing a key from the table
|
||||
runnableExamples:
|
||||
var a = initTable[char, int]()
|
||||
a['x'] = 7
|
||||
a['y'] = 33
|
||||
doAssert a == {'x': 7, 'y': 33}.toTable
|
||||
|
||||
putImpl(enlarge)
|
||||
|
||||
proc hasKey*[A, B](t: Table[A, B], key: A): bool =
|
||||
## Returns true if ``key`` is in the table ``t``.
|
||||
##
|
||||
@@ -1285,6 +1285,22 @@ proc initOrderedTable*[A, B](initialSize = defaultInitialSize): OrderedTable[A,
|
||||
b = initOrderedTable[char, seq[int]]()
|
||||
initImpl(result, initialSize)
|
||||
|
||||
proc `[]=`*[A, B](t: var OrderedTable[A, B], key: A, val: B) =
|
||||
## Inserts a ``(key, value)`` pair into ``t``.
|
||||
##
|
||||
## See also:
|
||||
## * `[] proc<#[],OrderedTable[A,B],A>`_ for retrieving a value of a key
|
||||
## * `hasKeyOrPut proc<#hasKeyOrPut,OrderedTable[A,B],A,B>`_
|
||||
## * `mgetOrPut proc<#mgetOrPut,OrderedTable[A,B],A,B>`_
|
||||
## * `del proc<#del,OrderedTable[A,B],A>`_ for removing a key from the table
|
||||
runnableExamples:
|
||||
var a = initOrderedTable[char, int]()
|
||||
a['x'] = 7
|
||||
a['y'] = 33
|
||||
doAssert a == {'x': 7, 'y': 33}.toOrderedTable
|
||||
|
||||
putImpl(enlarge)
|
||||
|
||||
proc toOrderedTable*[A, B](pairs: openArray[(A, B)]): OrderedTable[A, B] =
|
||||
## Creates a new ordered hash table that contains the given ``pairs``.
|
||||
##
|
||||
@@ -1342,22 +1358,6 @@ proc `[]`*[A, B](t: var OrderedTable[A, B], key: A): var B =
|
||||
## key is in the table
|
||||
get(t, key)
|
||||
|
||||
proc `[]=`*[A, B](t: var OrderedTable[A, B], key: A, val: B) =
|
||||
## Inserts a ``(key, value)`` pair into ``t``.
|
||||
##
|
||||
## See also:
|
||||
## * `[] proc<#[],OrderedTable[A,B],A>`_ for retrieving a value of a key
|
||||
## * `hasKeyOrPut proc<#hasKeyOrPut,OrderedTable[A,B],A,B>`_
|
||||
## * `mgetOrPut proc<#mgetOrPut,OrderedTable[A,B],A,B>`_
|
||||
## * `del proc<#del,OrderedTable[A,B],A>`_ for removing a key from the table
|
||||
runnableExamples:
|
||||
var a = initOrderedTable[char, int]()
|
||||
a['x'] = 7
|
||||
a['y'] = 33
|
||||
doAssert a == {'x': 7, 'y': 33}.toOrderedTable
|
||||
|
||||
putImpl(enlarge)
|
||||
|
||||
proc hasKey*[A, B](t: OrderedTable[A, B], key: A): bool =
|
||||
## Returns true if ``key`` is in the table ``t``.
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user