tinygo/testdata/map.txt
Ayke van Laethem b13c993565 compiler: fix ranging over maps with particular map types
Some map keys are hard to compare, such as floats. They are stored as if
the map keys are of interface type instead of the key type itself. This
makes working with them in the runtime package easier: they are compared
as regular interfaces.

Iterating over maps didn't care about this special case though. It just
returns the key, value pair as it is stored in the map. This is buggy,
and this commit fixes this bug.
2021-12-09 00:14:20 +01:00

80 строки
1,1 КиБ
Text

map length: 2
map read: answer = 42
answer = 42
foo = 3
map length: 1
map read: data = 3
data = 3
map length: 12
map read: three = 3
eight = 8
eleven = 11
five = 5
four = 4
nine = 9
one = 1
seven = 7
six = 6
ten = 10
three = 3
twelve = 12
two = 2
map length: 12
map read: ten = 10
eight = 8
eleven = 11
five = 5
four = 4
nine = 9
one = 1
seven = 7
six = 6
ten = 10
three = 3
twelve = 12
two = 2
map length: 11
map read: seven = 7
eight = 8
eleven = 11
five = 5
four = 4
nine = 9
one = 1
seven = 7
ten = 10
three = 3
twelve = 12
two = 2
lookup with comma-ok: eight 8 true
lookup with comma-ok: nokey 0 false
false true 2
true false 0
nilmap: 0
4
42
4321
5555
itfMap[3]: 0
itfMap[3.14]: 3
itfMap[8]: 8
itfMap[uint8(8)]: 80
itfMap["eight"]: 800
itfMap[[2]int{5, 2}]: 52
itfMap[true]: 1
itfMap[8]: 0
itfMap: found key "eight": 800
floatMap[42]: 84
floatMap[43]: 0
floatMap[42]: 0
floatMap key, value: +3.140000e+000 6
structMap[{"tau", 6.28}]: 5
structMap[{"Tau", 6.28}]: 0
structMap[{"tau", 3.14}]: 0
structMap[{"tau", 6.28}]: 0
tested preallocated map
tested growing of a map
2
2
2
2