// -oldComparableSemantics

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

func f[_ comparable]() {}

type S1 struct{ x int }
type S2 struct{ x any }
type S3 struct{ x [10]interface{ m() } }

func _[P1 comparable, P2 S2]() {
	_ = f[S1]
	_ = f[S2 /* ERROR S2 does not satisfy comparable */ ]
	_ = f[S3 /* ERROR S3 does not satisfy comparable */ ]

	type L1 struct { x P1 }
	type L2 struct { x P2 }
	_ = f[L1]
	_ = f[L2 /* ERROR L2 does not satisfy comparable */ ]
}


// example from issue

type Set[T comparable] map[T]struct{}

func NewSetFromSlice[T comparable](items []T) *Set[T] {
	s := Set[T]{}

	for _, item := range items {
		s[item] = struct{}{}
	}

	return &s
}

type T struct{ x any }

func main() {
	NewSetFromSlice /* ERROR T does not satisfy comparable */ ([]T{
		{"foo"},
		{5},
	})
}
