OK, sorry, I spoke too strongly. In particular, I reviewed the definition of “empirical evidence”, and clearly using that word was not justified. I retract that statement.
It’s great if some people find the language imports useful. In my experience, though, virtually all the feedback I have seen over the years is that it’s at most visual annoyance at the top of the file, assuming your IDE does not hide them.
The reflective calls example is perhaps special, because the warnings point to code which has unexpectedly poor performance. It looks like a method call, but’s terrible performance-wise. It’s especially relevant since some calls to refined methods can still be compiled as efficient method calls (for example, the
apply method of dependent function types in Scala 3), so sometimes it’s perfectly fine to use them, but you want the compiler against unexpectedly slow ones.
Similarly, warnings for existential types that cannot be expressed with wildcards are good, because they don’t exist in Scala 3 anymore.
null is not going to disappear, nor implicit conversions, nor
asInstanceOf, nor do any of them have unexpectedly poor performance. Therefore, the warnings are much more likely to be only annoyance, and therefore disregarded.