mirror of
https://github.com/golang/go
synced 2024-11-26 17:26:56 -07:00
6fe0d3758b
Per the discussion on the issue, since no problems related to this appeared since Go 1.20, remove the ability to disable the check for anonymous interface cycles permanently. Adjust various tests accordingly. For #56103. Change-Id: Ica2b28752dca08934bbbc163a9b062ae1eb2a834 Reviewed-on: https://go-review.googlesource.com/c/go/+/550896 Run-TryBot: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
45 lines
951 B
Go
45 lines
951 B
Go
// errorcheck
|
|
|
|
// Copyright 2012 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.
|
|
|
|
// Used to crash compiler in interface type equality check.
|
|
// (This test used to have problems - see #15596.)
|
|
|
|
package p
|
|
|
|
// exported interfaces
|
|
|
|
type I1 interface { // ERROR "invalid recursive type: anonymous interface refers to itself"
|
|
F() interface{I1}
|
|
}
|
|
|
|
type I2 interface { // ERROR "invalid recursive type: anonymous interface refers to itself"
|
|
F() interface{I2}
|
|
}
|
|
|
|
var V1 I1
|
|
var V2 I2
|
|
|
|
func F() bool {
|
|
return V1 == V2
|
|
}
|
|
|
|
// non-exported interfaces
|
|
|
|
type i1 interface { // ERROR "invalid recursive type: anonymous interface refers to itself"
|
|
F() interface{i1}
|
|
}
|
|
|
|
type i2 interface { // ERROR "invalid recursive type: anonymous interface refers to itself"
|
|
F() interface{i2}
|
|
}
|
|
|
|
var v1 i1
|
|
var v2 i2
|
|
|
|
func f() bool {
|
|
return v1 == v2
|
|
}
|