// 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.

package a

type T struct {
}

func F() []T {
	return []T{T{}}
}

func Fi() []T {
	return []T{{}} // element with implicit composite literal type
}

func Fp() []*T {
	return []*T{&T{}}
}

func Fip() []*T {
	return []*T{{}} // element with implicit composite literal type
}

func Gp() map[int]*T {
	return map[int]*T{0: &T{}}
}

func Gip() map[int]*T {
	return map[int]*T{0: {}} // element with implicit composite literal type
}

func Hp() map[*T]int {
	return map[*T]int{&T{}: 0}
}

func Hip() map[*T]int {
	return map[*T]int{{}: 0} // key with implicit composite literal type
}