Re:Where Everything Went Wrong: Error Handling and Error Mes...
by a1369209993 on Sunday February 21, 2021 @01:46PM
(#26215968)
> Rust doesn't infer function types (on purpose)
> I don't think rustc is currently smart enough to infer the totality loops in general.
Well, yes; we're necessarily talking about changes to the language (or, equivalently, possible different languages).
> while callers of `!`-functions would be easy to check for, [other problems wouldn't]
That was my point, thanks: "when trying to save your crucial data to disk, in real-time code where panicking would maybe kill someone in the real world, etc", checking for the easy-to-check-for problems doesn't actually suffice to prevent disasters.
* Rust doesn't infer function types (on purpose)
* like const (or Copy), the removal of the flag is a breaking change, so it should not happen implicitly
So functions would necessarily have to be explicitly marked as e.g. `convergent` or whatever. And while callers of `!`-functions would be easy to check for, I don't think rustc is currently smart enough to infer the totality loops in general.