I believe it would be. The reason is that currently, if I want the equivalent of some values being mutable and others not, or for that matter "splitting the self-borrow", the relevant values cannot be part of Self at all, and need to be passed in as separate arguments.
While that works, it can be a lot of refactor work at times, depending on the context, and lacking automated refactoring tools, that all becomes manual work on the plate of the developer.
In addition, it's also not the most discoverable solution. It is a mitigation strategy I only learned about after having > 5 years of Rust experience.
Why do you call this a half solution? I don't see TFCs as a half solution at all. There's so many Rust feature that can be emulated with other features, we even add features like that afterwards (let else).
It's not a half solution, it's a full solution. I still want this even if we have view types. I see view types as a half solution on this specific problem, if you have to call something half solution.
Apparently Niko made a blog post about Maximally minimal view types on March 21 (and I only found it just now). And I think it's a good middlepoint and I would be happy with it as a minimal sulotion. The main pain point I had with view types was it's too large .
Maybe this was what @Vorpal talking about and I misinterpreted it as full view types?