diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2015-03-31 14:02:51 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2015-03-31 16:18:08 +0200 |
commit | bf6398820971fb0133c53a86e6835ee0f549c35b (patch) | |
tree | 6b1f99dcf9118ca611884ea739a2d0b324706d4b /src | |
parent | 6372df754ca8943a5fea3455936dbb6c1723d78e (diff) | |
download | scala-bf6398820971fb0133c53a86e6835ee0f549c35b.tar.gz scala-bf6398820971fb0133c53a86e6835ee0f549c35b.tar.bz2 scala-bf6398820971fb0133c53a86e6835ee0f549c35b.zip |
SI-8731 don't issue a @switch warning for two-case matches
This allows annotating small pattern matches with `@switch` without
getting any warnings. There's no reason to warn, the performance of
the generated bytecode is good.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/patmat/MatchTreeMaking.scala | 2 | ||||
-rw-r--r-- | src/library/scala/annotation/switch.scala | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/patmat/MatchTreeMaking.scala b/src/compiler/scala/tools/nsc/transform/patmat/MatchTreeMaking.scala index b703b5bc6d..e1fe220556 100644 --- a/src/compiler/scala/tools/nsc/transform/patmat/MatchTreeMaking.scala +++ b/src/compiler/scala/tools/nsc/transform/patmat/MatchTreeMaking.scala @@ -577,8 +577,6 @@ trait MatchTreeMaking extends MatchCodeGen with Debugging { lengthMax3(casesNoSubstOnly) > 2 } val requireSwitch = hasSwitchAnnotation && exceedsTwoCasesOrAlts - if (hasSwitchAnnotation && !requireSwitch) - reporter.warning(scrut.pos, "matches with two cases or fewer are emitted using if-then-else instead of switch") (suppression, requireSwitch) case _ => (Suppression.NoSuppression, false) diff --git a/src/library/scala/annotation/switch.scala b/src/library/scala/annotation/switch.scala index 23e3923407..00124cf88b 100644 --- a/src/library/scala/annotation/switch.scala +++ b/src/library/scala/annotation/switch.scala @@ -22,6 +22,9 @@ package scala.annotation } }}} * + * Note: for pattern matches with one or two cases, the compiler generates jump instructions. + * Annotating such a match with `@switch` does not issue any warning. + * * @author Paul Phillips * @since 2.8 */ |