// errorcheck

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

package main

type T0 T0 // ERROR "invalid recursive type"
type _ map[T0]int

type T1 struct{ T1 } // ERROR "invalid recursive type"
type _ map[T1]int

func f() {
	type T2 T2 // ERROR "invalid recursive type"
	type _ map[T2]int
}

func g() {
	type T3 struct{ T3 } // ERROR "invalid recursive type"
	type _ map[T3]int
}

func h() {
	type T4 struct{ m map[T4]int } // ERROR "invalid map key"
	type _ map[T4]int              // ERROR "invalid map key"
}
