aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-05-19 16:54:53 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-05-19 16:54:53 +0200
commit772f3d20fd3605d077abf28e80195f1dda343ee1 (patch)
treec40e295f8524dd1194547cc704d6e11dba4d24a9
parent0dd8a135569b8f3f63d9c87fb5ad684d263db9f1 (diff)
downloaddotty-772f3d20fd3605d077abf28e80195f1dda343ee1.tar.gz
dotty-772f3d20fd3605d077abf28e80195f1dda343ee1.tar.bz2
dotty-772f3d20fd3605d077abf28e80195f1dda343ee1.zip
Move `stripAnnots` to `isRef` instead of performing explicitly everywhere
-rw-r--r--src/dotty/tools/dotc/core/Types.scala2
-rw-r--r--src/dotty/tools/dotc/transform/PatternMatcher.scala16
2 files changed, 6 insertions, 12 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index 8ef0e9fd1..a0307c9b7 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -105,7 +105,7 @@ object Types {
* It makes no sense for it to be an alias type because isRef would always
* return false in that case.
*/
- def isRef(sym: Symbol)(implicit ctx: Context): Boolean = stripTypeVar match {
+ def isRef(sym: Symbol)(implicit ctx: Context): Boolean = stripAnnots.stripTypeVar match {
case this1: TypeRef =>
this1.info match { // see comment in Namer#typeDefSig
case TypeAlias(tp) => tp.isRef(sym)
diff --git a/src/dotty/tools/dotc/transform/PatternMatcher.scala b/src/dotty/tools/dotc/transform/PatternMatcher.scala
index f8f32131b..d1737b55e 100644
--- a/src/dotty/tools/dotc/transform/PatternMatcher.scala
+++ b/src/dotty/tools/dotc/transform/PatternMatcher.scala
@@ -306,17 +306,11 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer {thisTrans
def emitSwitch(scrut: Tree, scrutSym: Symbol, cases: List[List[TreeMaker]], pt: Type, matchFailGenOverride: Option[Symbol => Tree], unchecked: Boolean): Option[Tree] = {
// TODO Deal with guards?
- def isSwitchableType(tpe: Type): Boolean = {
- val actualTpe = tpe match {
- case t @ AnnotatedType(inner, _) => inner
- case x => x
- }
-
- (actualTpe isRef defn.IntClass) ||
- (actualTpe isRef defn.ByteClass) ||
- (actualTpe isRef defn.ShortClass) ||
- (actualTpe isRef defn.CharClass)
- }
+ def isSwitchableType(tpe: Type): Boolean =
+ (tpe isRef defn.IntClass) ||
+ (tpe isRef defn.ByteClass) ||
+ (tpe isRef defn.ShortClass) ||
+ (tpe isRef defn.CharClass)
object IntEqualityTestTreeMaker {
def unapply(treeMaker: EqualityTestTreeMaker): Option[Int] = treeMaker match {