Речь про 77273, автор Гризмер, один из трёх создателей языка. Метод конкретного типа теперь сможет объявлять свои type-параметры. Таргет 1.27, август.
Звучит абстрактно, на деле это знакомая боль. Раньше так нельзя было:
func (c *Cache) Get[T any](key string) (T, error)
И ты выносил дженерик на уровень пакета,
Get[T](c, key), корёжа читаемость ради компилятора. Теперь это живёт как нормальный метод.Но дали не то, что просили номером один. Generic-метод по-прежнему нельзя положить в интерфейс. А просили именно это, абстрагировать дженерик-поведение за интерфейсом. Так что для библиотек, которые хотели типобезопасные плагины через интерфейсы, праздник отложен.
Каждое утро по часу ковыряю исходники компилятора, и такие развороты в позиции команды отдельное удовольствие наблюдать. «Никогда» в языке означает «пока не нашли, как сделать правильно».
