diff --git a/library/src/scala/Option.scala b/library/src/scala/Option.scala index 68f2ee039e7e..c9c7969550a0 100644 --- a/library/src/scala/Option.scala +++ b/library/src/scala/Option.scala @@ -220,7 +220,10 @@ sealed abstract class Option[+A] extends IterableOnce[A] with Product with Seria * val textField = new JComponent(initialText.orNull,20) * ``` */ - @inline final def orNull[A1 >: A](implicit ev: Null <:< A1): A1 = this getOrElse ev(null) + @inline final def orNull: A | Null = this.getOrElse(null) + + // for binary and TASTy backwards compatibility + @deprecated @inline protected final def orNull[A1 >: A](implicit ev: Null <:< A1): A1 = this getOrElse ev(null) /** Returns a $some containing the result of applying $f to this $option's * value if this $option is nonempty. diff --git a/project/MiMaFilters.scala b/project/MiMaFilters.scala index 6a8a9326b6d0..7c307588e2eb 100644 --- a/project/MiMaFilters.scala +++ b/project/MiMaFilters.scala @@ -24,6 +24,7 @@ object MiMaFilters { // Breaking changes since last reference version Build.mimaPreviousDottyVersion -> Seq( + ProblemFilters.exclude[DirectMissingMethodProblem]("scala.None.orNull"), ProblemFilters.exclude[MissingTypesProblem]("scala.util.control.NonLocalReturns$ReturnThrowable"), // THIS IS FINE, IT SHOULD HAVE BEEN THIS WAY ProblemFilters.exclude[MissingTypesProblem]("scala.Function1$"), diff --git a/tests/explicit-nulls/pos/option-ornull.scala b/tests/explicit-nulls/pos/option-ornull.scala new file mode 100644 index 000000000000..d17b7356a1d7 --- /dev/null +++ b/tests/explicit-nulls/pos/option-ornull.scala @@ -0,0 +1,6 @@ +import java.util.Optional + +class CheckResult(result: Option[Unit]): + def foo = + val x: Optional[Unit] = Optional.ofNullable(result.orNull) + 42