Signalé dans https://users.rust-lang.org/t/giving-names-to-callback-parameters/12877.
pub fn f(callback: fn(len: usize)) {}
Rustdoc montre cela comme:
pub fn f(callback: fn(_: usize))
C'est avec rustc 1.22.0-nightly (539f2083d 2017-09-13).
Ayant signalé cela à l'origine, j'aimerais vraiment essayer le correctif. Je vais commencer à enquêter au cours du week-end.
Edit: comme je n'ai pas eu le temps de regarder ça, quelqu'un d'autre peut se sentir libre de prendre le relais.
@ rust-lang / compiler @petrochenkov Oh wow pourquoi
Mais si nous voulons cela, cela devrait être fait comme des fonctions extern {...}
(sans corps), qui gardent un Vec
de noms, distinct des modèles d'arguments dans les fonctions avec des corps.
@eddyb
Oh wow pourquoi autorisons-nous même cette syntaxe?!
Pour prendre en charge les arguments auto-documentés dans les types de rappel, à peu près la même raison pour laquelle les noms sont pris en charge dans les fonctions étrangères.
Tous les modèles sauf _
et IDENT
sont interdits par la même vérification qui les interdit dans les fonctions étrangères, donc les modèles légaux peuvent être réduits en " Vec
de noms".
Commentaire le plus utile
Ayant signalé cela à l'origine, j'aimerais vraiment essayer le correctif. Je vais commencer à enquêter au cours du week-end.
Edit: comme je n'ai pas eu le temps de regarder ça, quelqu'un d'autre peut se sentir libre de prendre le relais.