go/test/fixedbugs/issue22605.go
Ian Lance Taylor a4c009f5ae cmd/compile: don't put Noalg types in typelinks
They could get picked up by reflect code, yielding the wrong type.

Fixes #22605

Change-Id: Ie11fb361ca7f3255e662037b3407565c8f0a2c4c
Reviewed-on: https://go-review.googlesource.com/76315
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2017-11-07 22:29:48 +00:00

27 lines
504 B
Go

// run
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// We were picking up a special noalg type from typelinks.
package main
import "reflect"
func f(m map[string]int) int {
return m["a"]
}
func g(m map[[8]string]int) int {
t := reflect.ArrayOf(8, reflect.TypeOf(""))
a := reflect.New(t).Elem()
return m[a.Interface().([8]string)]
}
func main() {
m := map[[8]string]int{}
g(m)
}