// build | |
// Copyright 2016 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. | |
// This file tests that required algs are generated, | |
// even when similar types have been marked elsewhere | |
// as not needing algs. See CLs 19769 and 19770. | |
package main | |
import "fmt" | |
//go:noinline | |
func f(m map[[8]string]int) int { | |
var k [8]string | |
return m[k] | |
} | |
//go:noinline | |
func g(m map[[8]interface{}]int) int { | |
var k [8]interface{} | |
return m[k] | |
} | |
//go:noinline | |
func h(m map[[2]string]int) int { | |
var k [2]string | |
return m[k] | |
} | |
type T map[string]interface{} | |
func v(x ...string) string { | |
return x[0] + x[1] | |
} | |
func main() { | |
fmt.Println( | |
f(map[[8]string]int{}), | |
g(map[[8]interface{}]int{}), | |
h(map[[2]string]int{}), | |
v("a", "b"), | |
) | |
} |