go cycles1 源码

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

golang cycles1 代码

文件路径:/src/cmd/compile/internal/types2/testdata/check/cycles1.go

// Copyright 2013 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

type (
	A interface {
		a() interface {
			ABC1
		}
	}
	B interface {
		b() interface {
			ABC2
		}
	}
	C interface {
		c() interface {
			ABC3
		}
	}

	AB interface {
		A
		B
	}
	BC interface {
		B
		C
	}

	ABC1 interface {
		A
		B
		C
	}
	ABC2 interface {
		AB
		C
	}
	ABC3 interface {
		A
		BC
	}
)

var (
	x1 ABC1
	x2 ABC2
	x3 ABC3
)

func _() {
	// all types have the same method set
	x1 = x2
	x2 = x1

	x1 = x3
	x3 = x1

	x2 = x3
	x3 = x2

	// all methods return the same type again
	x1 = x1.a()
	x1 = x1.b()
	x1 = x1.c()

	x2 = x2.a()
	x2 = x2.b()
	x2 = x2.c()

	x3 = x3.a()
	x3 = x3.b()
	x3 = x3.c()
}

相关信息

go 源码目录

相关文章

go blank 源码

go builtins0 源码

go builtins1 源码

go chans 源码

go compliterals 源码

go const0 源码

go const1 源码

go constdecl 源码

go conversions0 源码

go conversions1 源码

0  赞