diff options
-rw-r--r-- | src/reflect/scala/reflect/internal/transform/Erasure.scala | 2 | ||||
-rw-r--r-- | test/files/run/t9298/Test.java | 7 | ||||
-rw-r--r-- | test/files/run/t9298/VC.scala | 5 | ||||
-rw-r--r-- | test/files/run/t9298b/Test.java | 7 | ||||
-rw-r--r-- | test/files/run/t9298b/VC.scala | 8 |
5 files changed, 29 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/transform/Erasure.scala b/src/reflect/scala/reflect/internal/transform/Erasure.scala index d5b5967145..707972242a 100644 --- a/src/reflect/scala/reflect/internal/transform/Erasure.scala +++ b/src/reflect/scala/reflect/internal/transform/Erasure.scala @@ -254,6 +254,8 @@ trait Erasure { def mergeParents(parents: List[Type]): Type = if (parents.isEmpty) ObjectTpe else parents.head + + override protected def eraseDerivedValueClassRef(tref: TypeRef): Type = eraseNormalClassRef(tref) } object scalaErasure extends ScalaErasureMap diff --git a/test/files/run/t9298/Test.java b/test/files/run/t9298/Test.java new file mode 100644 index 0000000000..81f5265985 --- /dev/null +++ b/test/files/run/t9298/Test.java @@ -0,0 +1,7 @@ +public class Test { + public void consume(VC vc) {} + + public static void main(String[] args) { + new Client().test(); + } +} diff --git a/test/files/run/t9298/VC.scala b/test/files/run/t9298/VC.scala new file mode 100644 index 0000000000..916e62dc59 --- /dev/null +++ b/test/files/run/t9298/VC.scala @@ -0,0 +1,5 @@ +class VC(val s: String) extends AnyVal + +class Client { + def test = new Test().consume(new VC("")) +} diff --git a/test/files/run/t9298b/Test.java b/test/files/run/t9298b/Test.java new file mode 100644 index 0000000000..f369b26f36 --- /dev/null +++ b/test/files/run/t9298b/Test.java @@ -0,0 +1,7 @@ +public class Test { + public VC identity(VC vc) { return vc; } + + public static void main(String[] args) { + new Client().test(); + } +} diff --git a/test/files/run/t9298b/VC.scala b/test/files/run/t9298b/VC.scala new file mode 100644 index 0000000000..bb5978b6e4 --- /dev/null +++ b/test/files/run/t9298b/VC.scala @@ -0,0 +1,8 @@ +class VC(val s: Int) extends AnyVal + +class Client { + def test = { + val vc: VC = new Test().identity(new VC(42)) + assert(vc.s == 42) + } +} |