Initial commit: Go 1.23 release state
This commit is contained in:
44
test/fixedbugs/bug398.go
Normal file
44
test/fixedbugs/bug398.go
Normal file
@@ -0,0 +1,44 @@
|
||||
// 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
|
||||
}
|
||||
Reference in New Issue
Block a user