go issue41124 源码

  • 2022-07-15
  • 浏览 (869)

golang issue41124 代码

文件路径:/src/cmd/compile/internal/types2/testdata/fixedbugs/issue41124.go

// Copyright 2020 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 p

// Test case from issue.

type Nat /* ERROR cycle */ interface {
	Zero|Succ
}

type Zero struct{}
type Succ struct{
	Nat // Nat contains type constraints but is invalid, so no error
}

// Struct tests.

type I1 interface {
	comparable
}

type I2 interface {
	~int
}

type I3 interface {
	I1
	I2
}

type _ struct {
	f I1 // ERROR interface is .* comparable
}

type _ struct {
	comparable // ERROR interface is .* comparable
}

type _ struct{
	I1 // ERROR interface is .* comparable
}

type _ struct{
	I2 // ERROR interface contains type constraints
}

type _ struct{
	I3 // ERROR interface contains type constraints
}

// General composite types.

type (
	_ [10]I1 // ERROR interface is .* comparable
	_ [10]I2 // ERROR interface contains type constraints

	_ []I1 // ERROR interface is .* comparable
	_ []I2 // ERROR interface contains type constraints

	_ *I3 // ERROR interface contains type constraints
	_ map[I1 /* ERROR interface is .* comparable */ ]I2 // ERROR interface contains type constraints
	_ chan I3 // ERROR interface contains type constraints
	_ func(I1 /* ERROR interface is .* comparable */ )
	_ func() I2 // ERROR interface contains type constraints
)

// Other cases.

var _ = [...]I3 /* ERROR interface contains type constraints */ {}

func _(x interface{}) {
	_ = x.(I3 /* ERROR interface contains type constraints */ )
}

type T1[_ any] struct{}
type T3[_, _, _ any] struct{}
var _ T1[I2 /* ERROR interface contains type constraints */ ]
var _ T3[int, I2 /* ERROR interface contains type constraints */ , float32]

func f1[_ any]() int { panic(0) }
var _ = f1[I2 /* ERROR interface contains type constraints */ ]()
func f3[_, _, _ any]() int { panic(0) }
var _ = f3[int, I2 /* ERROR interface contains type constraints */ , float32]()

func _(x interface{}) {
	switch x.(type) {
	case I2 /* ERROR interface contains type constraints */ :
	}
}

相关信息

go 源码目录

相关文章

go issue20583 源码

go issue23203a 源码

go issue23203b 源码

go issue25838 源码

go issue26390 源码

go issue28251 源码

go issue39634 源码

go issue39664 源码

go issue39680 源码

go issue39693 源码

0  赞