История изменений
Исправление dimgel, (текущая версия) :
Ну auto это всё-таки про вывод типов. Твой пример более подходит под «trait bound syntax» в расте: «fn f<T: Trait>(x: &T) { x }». (UPD: А может и не более. Чёт я туплю. Зачем два синтаксиса, кстати, – отдельный вопрос: так себе синтаксический сахар.)
А претензия в том, что слово «impl» в примере в заглавном посте тупо лишнее – компилятор что, не способен разобраться, что Trait1 и Trait2 – идентификаторы trait-ов?
Как и fun vs fn: если нет идентификатора, а за кейвордом сразу следует открывающая скобка (список параметров), значит анонимная функция, и городить отдельный кейворд не было никакого смысла.
Исходная версия dimgel, :
Ну auto это всё-таки про вывод типов. Твой пример более подходит под «trait bound syntax» в расте: «fn f<T: Trait>(x: &T) { x }». А претензия в том, что слово «impl» в примере в заглавном посте тупо лишнее – компилятор что, не способен разобраться, что Trait1 и Trait2 – идентификаторы trait-ов?
Как и fun vs fn: если нет идентификатора, а за кейвордом сразу следует открывающая скобка (список параметров), значит анонимная функция, и городить отдельный кейворд не было никакого смысла.