// Copyright 2021 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.

// This file contains test cases for interfaces containing
// constraint elements.
//
// For now, we accept both ordinary type lists and the
// more complex constraint elements.

package p

type _ interface {
	m()
	type int
	type int, string
	E
}

type _ interface {
	m()
	~int
	int | string
	int | ~string
	~int | ~string
}


type _ interface {
	m()
	~int
	T[int, string] | string
	int | ~T[string, struct{}]
	~int | ~string
	type bool, int, float64
}
