@Leonard, type constraints can only be used as type parameters, using them as normal interfaces is currently not allowed. See the notes in the draft release notes[1] or the draft 1.18 spec[2].
> Such interfaces may only be used as type constraints. > Interfaces that contain non-interface types, terms of the form ~T, or unions may only be used as type constraints, or as elements of other interfaces used as constraints. They cannot be the types of values or variables, or components of other, non-interface types. @Kurtis, that issue is about embedded fields (fields without explicit field names) that use type parameters. [1] - https://tip.golang.org/doc/go1.18 [2] - https://tip.golang.org/ref/spec#Interface_types On Wednesday, December 15, 2021 at 10:47:20 AM UTC-5 kra...@skepticism.us wrote: > This was asked 15 hours ago in the thread with the subject line "Go 1.18 > beta1: Embedding Type Parameter in struct definition is an error". :-) > > See https://golang.org/issue/49030. > > On Wed, Dec 15, 2021 at 3:24 AM Leonard Mittmann <leonard....@gmail.com> > wrote: > >> I just learned that type constraints, which are defined as interfaces are >> actually not usable in all the places "normal" interfaces can be used in. >> E.g., why can a constraint interface not be uses as a struct type? >> >> Let's say I have the func `func Smallest[T constraints.Ordered](s []T) T`. >> How do I write a table test for this func? Intuitively one would try to >> store tests like this: >> >> tests := []struct { >> Arr: []constraints.Ordered >> Want: constraints.Ordered >> }{...} >> >> But this is not permitted. Am I missing something why this behavior is >> should be considered good? If a type constraint is nothing like an >> interface... okay, but why call it interface then? >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/53df110e-8f34-490a-9b77-610dacffdbcfn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/golang-nuts/53df110e-8f34-490a-9b77-610dacffdbcfn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > Kurtis Rader > Caretaker of the exceptional canines Junior and Hank > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/e0c12926-4b5e-45ac-b9a8-409e1657fa42n%40googlegroups.com.