From e3173c34fe80006bf997948c0df92ca0b970cb8c Mon Sep 17 00:00:00 2001 From: odersky Date: Fri, 9 Sep 2022 11:02:53 +0200 Subject: [PATCH] Regression test This now works with level checking on instantiation Fixes #15154 --- tests/new/test.scala | 3 --- tests/pos/i15154.scala | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) delete mode 100644 tests/new/test.scala create mode 100644 tests/pos/i15154.scala diff --git a/tests/new/test.scala b/tests/new/test.scala deleted file mode 100644 index ac8f67d1530f..000000000000 --- a/tests/new/test.scala +++ /dev/null @@ -1,3 +0,0 @@ -object Test: - - def test = ??? diff --git a/tests/pos/i15154.scala b/tests/pos/i15154.scala new file mode 100644 index 000000000000..42f805e022a9 --- /dev/null +++ b/tests/pos/i15154.scala @@ -0,0 +1,24 @@ +trait RType +trait TypeEntry{ + def typeAdapter: TypeAdapter[_] = ??? +} + +trait TypeAdapter[E] +case class OptionTypeAdapter[E](nullIsNone: Boolean, valueTypeAdapter: TypeAdapter[E]) extends TypeAdapter[E] +case class JavaOptionalTypeAdapter[E](nullIsNone: Boolean, valueTypeAdapter: TypeAdapter[E]) extends TypeAdapter[E] + +def typeAdapterOf(concreteType: RType): TypeAdapter[_] = ??? + +@main def test() = { + // https://github.com/gzoller/scalajack/blob/4a29366e28fbd594d7c21b4eb969ca14626ac0d1/core/src/main/scala/co.blocke.scalajack/typeadapter/TupleTypeAdapter.scala#L21-L30 + val seq = List.empty[RType] + seq map { f => + typeAdapterOf(f) match { + case ota: OptionTypeAdapter[_] => ota.copy(nullIsNone = true) + case jota: JavaOptionalTypeAdapter[_] => jota.copy(nullIsNone = true) + case other => other + } + } +} + +// 15154 \ No newline at end of file