Key takeaways
- Scala 3.2 introduces significant improvements to coverage functionality, enhancing stability and usability for developers.
- The update aims to make code more precise and readable while addressing potential obscurities in specifications.
- New features include better code completion, improved mirror synthesis, and easier use of class constructors.
- Existing APIs are stabilised, transitioning from experimental to regular use, benefiting a wider range of users.
The launch of Scala 3.2 was announced today. This version ensures improvement to the newly introduced coverage functionality with no critical bugs. As per Scala, it's a more stable version, built on stable features available for all users.
Interestingly, it aims to make users’ codes more precise and easily readable. In addition, it strives to improve its specification to curb corner cases that may turn into obscurities. The company further expressed that, “We have decided that it's the perfect time to launch the first minor version after the release of Scala 3.0.” The already existing 3.1.0-RC1 tests not only the new experimental features like safer exceptions but also Scastie embedded in Scaladoc pages, improvements in JVM bytecode generation, the possibility to configure the compiler warnings and several other smaller improvements and fixes all across the board.
It is expected to provide better code completion for refined types, improved mirror synthesis, and easier use of class constructors with clauses. Along with 3.2 more stabilised bunch of APIs, that earlier could only be used in experimental code.
What's new in Scala 3.2?
Scala 3.0 can generate the coverage data more conveniently, setting up compiler flags, comprising other parts of the scoverage toolset and generating understandable human reports—which is then followed by mirror synthesis and better code completion.
Why and when should you update to Scala 3.2?
As soon as possible, the update will not demand any extra mile burden and will allow you to access new improvements laid by a current and updated version. For instance, using the new compiler version from the semantic one would give you a new experience in the next release of your library.




