12 ms·
The point is that the code literally cannot panic under any circumstances. Just because there's a call to `unwrap()` or `[]` doesn't mean it's actually possible
by justinpombrio 3y ago
The point is that the code literally cannot panic under any circumstances. Just because there's a call to `unwrap()` or `[]` doesn't mean it's actually possible to trigger that panic. I made that more explicit the code, in case that wasn't clear.
If there's any question as to whether a line might actually panic or not, then absolutely, generate helpful error messages. But when you can tell through simple local reasoning that the panic will never happen, you can just use square brackets. It's OK.
- dangerlibrary 3y agoFor the first time, I find myself wanting the equivalent of a :thumbs-up: reaction emoji on hn.
- dllthomas 3y ago> when you can tell through simple local reasoning that the panic will never happen A problem is that you may be able to tell now, but as code changes and functions grow and split, that reasoning may grow less simple and less local without any changes of those lines in particular. The odds of that, and the degree to which it matters, are of course both spectacularly situation dependent.
- fireflash38 3y agoAnd if my grandmother had wheels she'd be a bicycle! The point being, take context into account. You can't code like everything everywhere is going to get modified to be worse.
- dllthomas 3y agoI agree, I was just surfacing a sometimes missed piece of context.