[#1087] | project: compiler | priority: low | category: bug | |
---|---|---|---|---|
submitter | assigned to | status | date submitted | |
Nikolay | Iulian | fixed | 2007-05-06 23:06:43.0 | |
subject | [contrib #455] combination of return in synchronize block and finally break compiler | |||
code |
object TestReturnInSynchronize { def foo : unit = { try { "test".synchronized { return } } finally { // nothing } } } |
|||
what happened | boisvert@boog:~/prog/LoadBalancer.scala/src$ scalac TestReturnInSynchronize.scala Exception in thread "main" java.lang.AssertionError: assertion failed: Illegal nesting of cleanup operations: Li\ st(MonitorRelease(variable monitor0),Finalizer(())) while exiting finalizer () at scala.Predef$.assert(Predef.scala:89) at scala.tools.nsc.backend.icode.GenICode$ICodePhase$Context.removeFinalizer(GenICode.scala:1781) |
|||
what expected | compilation works or proper error reporting (i'm not sure return is allowed inside the synchronized) | |||
[back to overview] |
Nikolay edited on 2007-05-06 23:10:50.0 |
contribution #455 |
Iulian edited on 2007-05-07 10:53:02.0 |