From 4f8cdb7d895046c3a45a6fe9b39acdf5af80894a Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Thu, 9 Jan 2020 15:04:26 +0100 Subject: [PATCH] Fix #6662: Add regression test --- tests/neg/i6662.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/neg/i6662.scala diff --git a/tests/neg/i6662.scala b/tests/neg/i6662.scala new file mode 100644 index 000000000000..4f0d0eb11a28 --- /dev/null +++ b/tests/neg/i6662.scala @@ -0,0 +1,15 @@ +opaque type Opt[A >: Null] = A + +inline def (x: Opt[A]) nonEmpty[A >: Null]: Boolean = x.get != null // error: Implementation restriction +inline def (x: Opt[A]) isEmpty[A >: Null]: Boolean = x.get == null // error: Implementation restriction +inline def (x: Opt[A]) isDefined[A >: Null]: Boolean = x.nonEmpty // error: Implementation restriction +inline def (x: Opt[A]) get[A >: Null]: A = Opt.unOpt(x) // error: Implementation restriction + +object Opt +{ + inline def unOpt[A >: Null](x: Opt[A]): A = x // error: Implementation restriction + inline def apply[A >: Null](x: A): Opt[A] = x // error: Implementation restriction + inline def some[A >: Null](x: A): Opt[A] = x // error: Implementation restriction + inline def none[A >: Null]: Opt[A] = null // error: Implementation restriction + inline def fromOption[A >: Null](x: Option[A]) = x.orNull // error: Implementation restriction +}