/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/typeparam/issue50690b.go
51 строка
916 B
Robert Griesemer
go/types, types2: disable field accesses through type parameters
10 мар 2022, 00:26
10 мар 2022, 00:26
b8248fa
Код
Авторство
О чём код?
// run // 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 main import ( "fmt" ) type Printer[T ~string] struct { PrintFn func(T) } func Print[T ~string](s T) { fmt.Println(s) } func PrintWithPrinter[T ~string, S interface { ~struct { ID T PrintFn_ func(T) } PrintFn() func(T) }](message T, obj S) { obj.PrintFn()(message) } type PrintShop[T ~string] struct { ID T PrintFn_ func(T) } // Field accesses through type parameters are disabled // until we have a more thorough understanding of the // implications on the spec. See issue #51576. // Use accessor method instead. func (s PrintShop[T]) PrintFn() func(T) { return s.PrintFn_ } func main() { PrintWithPrinter( "Hello, world.", PrintShop[string]{ ID: "fake", PrintFn_: Print[string], }, ) }