mirror of
https://github.com/golang/go
synced 2024-09-05 07:54:46 +00:00
![griesemer](/assets/img/avatar_default.png)
Instead of trying to validate map key types eagerly in some cases, delay their validation to the end of type-checking, when we all type information is present. Passes go build -toolexec 'toolstash -cmp' -a std . Fixes #21273. Fixes #21657. Change-Id: I532369dc91c6adca1502d6aa456bb06b57e6c7ff Reviewed-on: https://go-review.googlesource.com/75310 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
29 lines
626 B
Go
29 lines
626 B
Go
// 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"
|
|
}
|