// The address of an array element is *uint8, not *[N]uint8. stage4 built the // element address with ssaElemType, which stops at the pointee, so // `var p *byte = &b.t[1]` was rejected by the assignability check. `byte` is an // alias for uint8, so this is valid and legacy accepts it. runtime's // `emptySlotTophash = &bucket.tophash[i]` was the first real site to hit it. package main type B struct{ t [8]uint8 } func main() { var b B var p *byte = &b.t[1] *p = 5 println(b.t[1]) var q *uint8 = &b.t[2] *q = 9 println(b.t[2]) }