Though I like the concept of collection mutability differentiation per se, the current implementation has several flaws:
- There's too much of unnecessary noise for immutable code.
Highlighting is expected to point possible problems, but not to underline all places that are OK.
All such “OK” underlinings form a mix-up with true errors and warnings and require a lot of additional attention.
The SNR is very low:
- The differentiation is limited to the IDEA editor – the structure of code itself is still ambiguous.
The initial problem is not inherent in Scala language itself, but arises from the collection library design (name clashes).
We can solve the problem using the language (but not IDE) means.
The proposal is to implement a known Twitter Scala team guideline: an explicit
So, we need to:
Please, post your suggestions. Which implementation would you prefer?