Skip to content

1.2.0

Latest

Choose a tag to compare

@lrytz lrytz released this 08 Sep 07:55
· 9 commits to main since this release
e8c5328

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 default method 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!