backports https://github.com/scala/scala/pull/2821