From 4074f0e1c21be9605592f6370adb398cef9f0379 Mon Sep 17 00:00:00 2001 From: Iulian Dragos Date: Tue, 17 May 2011 10:57:28 +0000 Subject: Fixed #4593. --- src/compiler/scala/tools/nsc/transform/Erasure.scala | 1 + test/files/pos/t4593.scala | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 test/files/pos/t4593.scala diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala index 3f509eae65..915aba63db 100644 --- a/src/compiler/scala/tools/nsc/transform/Erasure.scala +++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala @@ -529,6 +529,7 @@ abstract class Erasure extends AddInterfaces case UnitClass => if (treeInfo isPureExpr tree) REF(BoxedUnit_UNIT) else BLOCK(tree, REF(BoxedUnit_UNIT)) + case NothingClass => tree // a non-terminating expression doesn't need boxing case x => assert(x != ArrayClass) tree match { diff --git a/test/files/pos/t4593.scala b/test/files/pos/t4593.scala new file mode 100644 index 0000000000..250f68216a --- /dev/null +++ b/test/files/pos/t4593.scala @@ -0,0 +1,20 @@ +// ticket #4593 +trait A { + + class B + case object D extends B + + class C { + + var x: B = D + + def y = synchronized { + x match { + case D => {} + } + } + + } + +} + -- cgit v1.2.3