scala/scala — pull request #1755 by magarciaEPFL (2012-12-11 18:45:03+00:00)
Title: SI-6188 backport (ICodeReader wrongly ignored exception handlers)

A backport of https://github.com/scala/scala/commit/61cc8ff61c81a1276a921ad5288ee3bebea1c96e

The original fix (above) includes a test case that relies on scala.util.Success which as of this writing isn't there in 2.9.x. The test case requires a previously compiled classfile (where bytecode for an @inline method with exception handlers can be found). Ticket SI-6188 contains a self-contained example (not dependent on scala.util.Success) with _1 and _2 .scala files . Alternatively that test case could be used instead.

The backported fix (this commit) is safe in the sense that it prevents methods read by ICodeReader containing exception handlers from being inlined, even if marked @inline. Alternatively, the same effect can be achieved by annotating a method as @noinline.

review by @phaller

this PR supercedes https://github.com/scala/scala/pull/1750