Dado:
for foo, bar in [(1, 2), (3, 4)] {}
rustc produce:
error: missing `in` in `for` loop
--> src/main.rs:44:12
|
44 | for foo, bar in [(1, 2)] {}
| ^ help: try adding `in` here
error: expected expression, found `,`
--> src/main.rs:44:12
|
44 | for foo, bar in [(1, 2)] {}
| ^
… Pero sería mejor si descubriera que el usuario supuestamente pretendía for (foo, bar) in ...
, y diera un mensaje de error más específico.
Este es probablemente un error algo común proveniente de Python, que tiene una sintaxis similar para los bucles for
pero permite omitir los paréntesis.
Si esto es algo inspirado en Python, entonces estos diagnósticos / recuperación idealmente deberían aplicarse también a let
.
let a, b = (10, 11);
=>
let (a, b) = (10, 11);
Sospecho que incluso podemos implementar esta recuperación como "autotupling" en todos los contextos de expresión y patrón.
illegal a, b, c
=>
(a, b, c)
: +1: No solo Python, esto también será útil para los usuarios de Go.
for k, v := range myMap {
x, err = /* ... */
}
(He hecho algunos progresos en esto; próxima publicación de relaciones públicas)
Comentario más útil
Si esto es algo inspirado en Python, entonces estos diagnósticos / recuperación idealmente deberían aplicarse también a
let
.Sospecho que incluso podemos implementar esta recuperación como "autotupling" en todos los contextos de expresión y patrón.