---
title: "scala-library Breaking Changes on Maven Central | Since.dev"
description: "What each org.scala-lang:scala-library release removed, renamed or changed: 1,648 breaking changes in 8 versions on Maven Central, each with its source."
canonical_url: https://since.dev/packages/maven/org.scala-lang:scala-library
last_updated: 2026-01-13
---

# org.scala-lang:scala-library breaking changes

Every breaking API change we have recorded in org.scala-lang:scala-library on Maven Central: 1,648 breaking changes in 8 versions. Below are its newest 6 versions, removals and renames first, each with its source.

Newest change January 13, 2026

## 3.8.0

1,607 breaking changes, first published January 13, 2026.

- **Removed** `scala.collection.ArrayOps.ArrayIterator.xs`  

scala.collection.ArrayOps.ArrayIterator.xs was removed in org.scala-lang:scala-library 3.8.0 [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Removed** `scala.collection.Searching.Found$.andThen`  

scala.collection.Searching.Found$.andThen was removed in org.scala-lang:scala-library 3.8.0 [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Removed** `scala.collection.Searching.Found$.compose`  

scala.collection.Searching.Found$.compose was removed in org.scala-lang:scala-library 3.8.0 [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Removed** `scala.collection.Searching.InsertionPoint$.andThen`  

scala.collection.Searching.InsertionPoint$.andThen was removed in org.scala-lang:scala-library 3.8.0 [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Removed** `scala.collection.Searching.InsertionPoint$.compose`  

scala.collection.Searching.InsertionPoint$.compose was removed in org.scala-lang:scala-library 3.8.0 [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Signature changed** `scala.$eq$colon$eq.liftCo`  

Was <F> scala..eq.colon.eq<F, F> liftCo(); now <F> scala..eq.colon.eq<Object, Object> liftCo(). [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Signature changed** `scala.$eq$colon$eq.liftContra`  

Was <F> scala..eq.colon.eq<F, F> liftContra(); now <F> scala..eq.colon.eq<Object, Object> liftContra(). [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Signature changed** `scala.$eq$colon$eq.substituteBoth`  

Was abstract <F> F substituteBoth(F); now abstract <F> Object substituteBoth(Object). [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Signature changed** `scala.$eq$colon$eq.substituteCo`  

Was <F> F substituteCo(F); now <F> Object substituteCo(Object). [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)
- **Signature changed** `scala.$eq$colon$eq.substituteContra`  

Was <F> F substituteContra(F); now <F> Object substituteContra(Object). [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)

And 1,597 more in this version.

## 3.1.2-RC2

1 breaking change, first published January 13, 2026.

- **Renamed** `-Xtarget`  

Several compiler settings were renamed for consistency, so build scripts using the old names must be updated. [github.com](https://github.com/scala/scala3/releases/tag/3.1.2-RC2)

## 3.1.1-RC1

2 breaking changes, first published January 13, 2026.

- **Removed**  

Plugin-related compiler settings were removed from the common settings set, so build configurations that pass them may need updating. [github.com](https://github.com/scala/scala3/releases/tag/3.1.1-RC1)
- **Behavior changed**  

Code in other packages can no longer see members defined in the empty package. Move such members into a named package to keep them reachable. [github.com](https://github.com/scala/scala3/releases/tag/3.1.1-RC1)

## 3.1.0-RC1

1 breaking change, first published January 13, 2026.

- **Behavior changed**  

Secondary constructors marked inline are rejected by the compiler, so such code must drop the inline modifier. [github.com](https://github.com/scala/scala3/releases/tag/3.1.0-RC1)

## 3.0.2-RC1

5 breaking changes, first published January 13, 2026.

- **Behavior changed**  

Uses Java member lookup rules for .java sources in org.scala-lang:scala-library 3.0.2-RC1 [github.com](https://github.com/scala/scala3/releases/tag/3.0.2-RC1)
- **Behavior changed**  

Stops inserting semicolons in conditions unless indented in org.scala-lang:scala-library 3.0.2-RC1 [github.com](https://github.com/scala/scala3/releases/tag/3.0.2-RC1)
- **Behavior changed**  

Stops emitting Java generic signatures for constructors in org.scala-lang:scala-library 3.0.2-RC1 [github.com](https://github.com/scala/scala3/releases/tag/3.0.2-RC1)
- **Behavior changed**  

Hides problematic static forwarders in org.scala-lang:scala-library 3.0.2-RC1 [github.com](https://github.com/scala/scala3/releases/tag/3.0.2-RC1)
- **Behavior changed** `isInstanceOf`  

Restricts isInstanceOf\[Null\] checks in org.scala-lang:scala-library 3.0.2-RC1 [github.com](https://github.com/scala/scala3/releases/tag/3.0.2-RC1)

## 3.0.1-RC1

2 breaking changes, first published January 13, 2026.

- **Behavior changed**  

Code that references self in a super constructor call now fails to compile. [github.com](https://github.com/scala/scala3/releases/tag/3.0.1-RC1)
- **Signature changed** `scala.collection.immutable.Nil.toArray`  

IArray.toArray is deprecated because it is broken. Stop calling it and use another way to convert the array. [central.sonatype.com](https://central.sonatype.com/artifact/org.scala-lang/scala-library/3.8.0)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. A fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous maintenance.

Scan a public repository now, or give your agent one line.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

[Get an API key](https://app.since.dev/login?mode=signup)

Codex, Cursor and any MCP client use https://api.since.dev/mcp.

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
