Relatado em https://users.rust-lang.org/t/giving-names-to-callback-parameters/12877.
pub fn f(callback: fn(len: usize)) {}
Rustdoc mostra isso como:
pub fn f(callback: fn(_: usize))
Isso é com rustc 1.22.0-nightly (539f2083d 2017-09-13).
Tendo relatado isso originalmente, eu realmente gostaria de tentar consertar. Vou começar a investigar no fim de semana.
Edit: como não tive tempo de olhar para isso, outra pessoa pode se sentir à vontade para assumir.
@ rust-lang / compiler @petrochenkov Oh, uau, por que permitimos essa sintaxe ?!
Mas se quisermos isso deve ser feito como extern {...}
funções (sem corpos), que mantêm Vec
de nomes, distintos dos padrões de argumento em funções com corpos.
@eddyb
Nossa, por que permitimos essa sintaxe ?!
Para oferecer suporte a argumentos de autodocumentação em tipos de retorno de chamada, praticamente o mesmo motivo pelo qual os nomes são suportados em funções estrangeiras.
Quaisquer padrões exceto _
e IDENT
são proibidos lá pelo mesmo cheque que os proíbe em funções estrangeiras, então os legais podem ser reduzidos a " Vec
de nomes".
Comentários muito úteis
Tendo relatado isso originalmente, eu realmente gostaria de tentar consertar. Vou começar a investigar no fim de semana.
Edit: como não tive tempo de olhar para isso, outra pessoa pode se sentir à vontade para assumir.