diff options
author | Paul Phillips <paulp@improving.org> | 2010-12-03 05:02:37 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-12-03 05:02:37 +0000 |
commit | 715d95479e77b06dd65303886d2e0e70ddcf461f (patch) | |
tree | 991f4e4be398f9b32ef6c4df49fbd927ae8dd6d6 /src/library | |
parent | 31533385b7ac4e1643ad8664141f3d197dc637f1 (diff) | |
download | scala-715d95479e77b06dd65303886d2e0e70ddcf461f.tar.gz scala-715d95479e77b06dd65303886d2e0e70ddcf461f.tar.bz2 scala-715d95479e77b06dd65303886d2e0e70ddcf461f.zip |
Generalizes catch blocks to include any Partial...
Generalizes catch blocks to include any PartialFunction[Throwable, T].
Existing catch blocks will compile exactly as before. Anything else
(which mean: the token after CATCH is not a left brace, or it is a left
brace not immediately followed by CASE) is desugared as follows:
try body catch expr
// becomes
try body
catch { case x =>
val catchFn = expr
if (catchFn isDefinedAt x) catchFn(x)
else throw x
}
Review by odersky.
Diffstat (limited to 'src/library')
0 files changed, 0 insertions, 0 deletions