-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Labels
Milestone
Description
go version go1.5 darwin/amd64
go version go1.5.1 linux/amd64
package main
import (
"encoding/json"
)
type Uint8 uint8
func main() {
var sliceIn, sliceOut []Uint8
for i := 0; i < 20; i++ {
sliceIn = append(sliceIn, Uint8(i))
}
j, _ := json.Marshal(sliceIn)
json.Unmarshal(j, &sliceOut)
}
output
panic: reflect.Set: value of type []uint8 is not assignable to type []main.Uint8 [recovered]
panic: interface conversion: string is not error: missing method Error
goroutine 1 [running]:
encoding/json.(*decodeState).unmarshal.func1(0x820275e40)
/usr/local/go/src/encoding/json/decode.go:145 +0xba
reflect.Value.assignTo(0xdf2c0, 0x8202ae0c0, 0x57, 0x13d0e0, 0xb, 0xde2a0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/reflect/value.go:2158 +0x3be
reflect.Value.Set(0xde2a0, 0x8202ae000, 0xd7, 0xdf2c0, 0x8202ae0c0, 0x57)
/usr/local/go/src/reflect/value.go:1327 +0x95
encoding/json.(*decodeState).literalStore(0x8202ba000, 0x8202b0024, 0x1e, 0x40, 0xde2a0, 0x8202ae000, 0xd7, 0x0)
/usr/local/go/src/encoding/json/decode.go:760 +0x14ee
encoding/json.(*decodeState).literal(0x8202ba000, 0xd81e0, 0x8202ae000, 0x16)
/usr/local/go/src/encoding/json/decode.go:646 +0xe9
encoding/json.(*decodeState).value(0x8202ba000, 0xd81e0, 0x8202ae000, 0x16)
/usr/local/go/src/encoding/json/decode.go:299 +0x397
encoding/json.(*decodeState).unmarshal(0x8202ba000, 0xd81e0, 0x8202ae000, 0x0, 0x0)
/usr/local/go/src/encoding/json/decode.go:157 +0x196
encoding/json.Unmarshal(0x8202b0024, 0x1e, 0x40, 0xd81e0, 0x8202ae000, 0x0, 0x0)
/usr/local/go/src/encoding/json/decode.go:85 +0x12b
main.main()
/Users/kshvakov/unmarshal_bug.go:20 +0x168
exit status 2