diff --git a/core/src/main/scala/cats/syntax/option.scala b/core/src/main/scala/cats/syntax/option.scala index 81045b4cef..39a78426ed 100644 --- a/core/src/main/scala/cats/syntax/option.scala +++ b/core/src/main/scala/cats/syntax/option.scala @@ -23,7 +23,7 @@ final class OptionIdOps[A](val a: A) extends AnyVal { * res0: Option[Int] = Some(3) * }}} */ - def some: Option[A] = Option(a) + def some: Option[A] = Some(a) } final class OptionOps[A](val oa: Option[A]) extends AnyVal { diff --git a/tests/src/test/scala/cats/tests/OptionTests.scala b/tests/src/test/scala/cats/tests/OptionTests.scala index f6c31b11cd..8e9d58c89c 100644 --- a/tests/src/test/scala/cats/tests/OptionTests.scala +++ b/tests/src/test/scala/cats/tests/OptionTests.scala @@ -76,4 +76,12 @@ class OptionTests extends CatsSuite { isEq.lhs should === (isEq.rhs) } } + + // OptionIdOps tests + + test(".some with null argument still results in Some #871") { + val s: String = null + // can't use `s.some should === (Some(null))` here, because it leads to NullPointerException + s.some.exists(_ == null) should ===(true) + } }