Dropped Scala 2.11
The plugin now fails on a 2.11 project #962
Support for Scala 3.9 and 3.10
- The Scala 3.9 compiler stopped marking mixin forwarders as bridges, which lead to false positive on
private[foo]trait methods. #965 - Scala 3.10 stops emitting accidental static fields for nested objects. #942 (scala/scala3#26937)
- The tests now run on 3.9 and 3.10 alongside 3.3. #966, #967
Fewer false positives
Most of this release is removing false positive reports.
private[foo]classes and everything in them are skipped. They are public in bytecode, so MiMa was checking definitions no Scala client outside the package can reach. #935 (by @kitbellew)- Adding an abstract member to a sealed trait is no longer reported when nothing outside can implement it. #941, #944 (by @kitbellew)
- Mixin forwarders of a
private[foo]trait method. #953 - Dropping an override that a
defaultmethod covers is no longer reported. #968 - Static initializers. #951
- The accessor a nested object escapes through. #963
- Moving an implementation down into a new intermediate class. The method was matched against an abstract declaration further up the chain instead of the concrete one nearest to it. #952
- Type aliases are followed when working out which classes escape. #945, #950 (by @kitbellew)
Fixed crash
Signature.parentTypeArgs threw a StringIndexOutOfBoundsException on renamed type variables. #949
New check: class signatures
class Public extends Base[String] becoming Base[Integer] only changes generic signatures, not descriptors. With mimaReportSignatureProblems enabled, MiMa now checks the type arguments a class passes to parents. #943
sbt 2
Scala.js and Native projects picked the wrong previous artifact, because sbt 2.0.0 carries the platform in a platform setting the plugin never read. Fixed in sbt 2.0.7, which the plugin now relies on. #954, #964
Output
- The CLI errors on a missing oldfile or newfile instead of reporting no problems. #921 (by @kubukoz)
- The sbt output separates the problem from the filter you would add for it. #925 (by @SolalPirelli)
Credits
Thank you to @kitbellew, @kubukoz and @SolalPirelli for your contributions!