Resolve "Reliability: remove all "unwrap()" and deny their use"
Closes #134 (closed)
Merge request reports
Activity
added 2 commits
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
- Resolved by dvermd
@dvermd quelques généralités sur le traitement des erreurs :
On ne retourne un
Result
que quand l'erreur produite est un cas gérable (c'est a dire que le programme peut continuer a tourner), ou que c'est a l'appelant de décider si l'on peut continuer ou pas.Dans les cas des unwrap() des rules, ces rules sont le résultat d'un parsing par une gramme PEG (via pest.rs), la grammaire fait déjà tout les contrôles nécessaires, et l'on est donc garanti à 100% d'avoir une chaîne de caractère qui se parsera correctement dans le type cible (sauf erreur de dev dans l'écriture de la grammaire).
C'est pourquoi il ne faut pas faire de traitement d'erreur pour ces cas, si une string obtenue d'une rule pest ne se parse pas correctement, c'est nécessairement qu'il y a une erreur dans l'écriture de la grammaire, et donc il faut panic :)
Tout les unwrap() qui concernent des rules pest sont a remplacer par des expect, en précisant dans le expect que la grammaire assure déjà que le parsing réussira (en indiquant le nom de la règle dans le message du expect).
Edited by Éloïs