// errorcheck | |
// 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 | |
type Setter interface { | |
Set(string) | |
} | |
func FromStrings[T Setter](s []string) []T { | |
result := make([]T, len(s)) | |
for i, v := range s { | |
result[i].Set(v) | |
} | |
return result | |
} | |
type Settable int | |
func (p *Settable) Set(s string) { | |
*p = 0 | |
} | |
func F() { | |
FromStrings[Settable]([]string{"1"}) // ERROR "Settable does not satisfy Setter" | |
} |