diff options
author | Paul Phillips <paulp@improving.org> | 2012-05-26 13:46:42 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-05-26 15:39:04 -0700 |
commit | bcc82808ecf056affecf11b14f3ad850ad21d773 (patch) | |
tree | 6ef9df7e8b5dff67c7c0bf055d042f81c5c2ca2d | |
parent | e4b8c063ed01db93c2b7a87b673c7991a44f04df (diff) | |
download | scala-bcc82808ecf056affecf11b14f3ad850ad21d773.tar.gz scala-bcc82808ecf056affecf11b14f3ad850ad21d773.tar.bz2 scala-bcc82808ecf056affecf11b14f3ad850ad21d773.zip |
Handled some of our new exhaustiveness warnings.
Who could have suspected it would actually be right most of the time?
9 files changed, 17 insertions, 11 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index 17c244ee82..c29630d04b 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -1532,6 +1532,7 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with case (NE, _) => jcode emitIFNONNULL labels(success) jcode.emitGOTO_maybe_W(labels(failure), false) + case _ => } } else { (kind: @unchecked) match { diff --git a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala index 66e7becb12..d23571b517 100644 --- a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala +++ b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala @@ -1553,7 +1553,7 @@ abstract class GenMSIL extends SubComponent { } def emitBrBool(cond: TestOp, dest: Label) { - cond match { + (cond: @unchecked) match { // EQ -> Brfalse, NE -> Brtrue; this is because we come from // a CZJUMP. If the value on the stack is 0 (e.g. a boolean // method returned false), and we are in the case EQ, then diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala index 49cd17c176..66189a6854 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -316,7 +316,6 @@ class Template(universe: doc.Universe, tpl: DocTemplateEntity) extends HtmlPage def mbrCmt = mbr.comment.get def paramCommentToHtml(prs: List[ParameterEntity]): NodeSeq = prs match { - case Nil => NodeSeq.Empty case (tp: TypeParam) :: rest => val paramEntry: NodeSeq = { @@ -329,6 +328,9 @@ class Template(universe: doc.Universe, tpl: DocTemplateEntity) extends HtmlPage <dt class="param">{ vp.name }</dt><dd class="cmt">{ bodyToHtml(mbrCmt.valueParams(vp.name)) }</dd> } paramEntry ++ paramCommentToHtml(rest) + + case _ => + NodeSeq.Empty } if (mbr.comment.isEmpty) NodeSeq.Empty diff --git a/src/compiler/scala/tools/nsc/transform/CleanUp.scala b/src/compiler/scala/tools/nsc/transform/CleanUp.scala index bf01e142c9..bbdf10a021 100644 --- a/src/compiler/scala/tools/nsc/transform/CleanUp.scala +++ b/src/compiler/scala/tools/nsc/transform/CleanUp.scala @@ -678,7 +678,7 @@ abstract class CleanUp extends Transform with ast.TreeDSL { // need to create a new block with inits and the old term treeCopy.Block(term, newStaticInits.toList, term) } - case None => + case _ => // create new static ctor val staticCtorSym = currentClass.newStaticConstructor(template.pos) val rhs = Block(newStaticInits.toList, Literal(Constant(()))) diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index 3373878beb..6d9c9c4ce8 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -807,9 +807,9 @@ abstract class RefChecks extends InfoTransform with reflect.internal.transform.R for (i <- 0 until seenTypes.length) { val baseClass = clazz.info.baseTypeSeq(i).typeSymbol seenTypes(i) match { - case List() => + case Nil => println("??? base "+baseClass+" not found in basetypes of "+clazz) - case List(_) => + case _ :: Nil => ;// OK case tp1 :: tp2 :: _ => unit.error(clazz.pos, "illegal inheritance;\n " + clazz + diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 75174ca494..e643a91da7 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -2523,7 +2523,7 @@ trait Typers extends Modes with Adaptations with Taggings { def typedImport(imp : Import) : Import = (transformed remove imp) match { case Some(imp1: Import) => imp1 - case None => log("unhandled import: "+imp+" in "+unit); imp + case _ => log("unhandled import: "+imp+" in "+unit); imp } private def isWarnablePureExpression(tree: Tree) = tree match { case EmptyTree | Literal(Constant(())) => false @@ -4179,7 +4179,8 @@ trait Typers extends Modes with Adaptations with Taggings { nme.update, Apply(Select(mkCall(nme.apply), prefix) setPos fun.pos, args) setPos tree.pos ) - } + case _ => EmptyTree + } } val tree1 = qual match { diff --git a/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala b/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala index 3d9453d8cd..d75e2705c3 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala @@ -221,9 +221,9 @@ trait Unapplies extends ast.TreeDSL val bodyTpe = funParamss.foldRight(classTpe)((params, restp) => gen.scalaFunctionConstr(params.map(_.tpt), restp)) val argss = copyParamss match { - case Nil => Nil - case ps :: Nil => mmap(ps :: funParamss)(toIdent) - } + case Nil => Nil + case ps :: _ => mmap(ps :: funParamss)(toIdent) + } val body = funParamss.foldRight(New(classTpe, argss): Tree)(Function) Some(atPos(cdef.pos.focus)( diff --git a/src/library/scala/text/Document.scala b/src/library/scala/text/Document.scala index 6a0fca40ca..86508634e3 100644 --- a/src/library/scala/text/Document.scala +++ b/src/library/scala/text/Document.scala @@ -88,6 +88,8 @@ abstract class Document { case (i, b, DocGroup(d)) :: z => val fitsFlat = fits(width - k, (i, false, d) :: z) fmt(k, (i, !fitsFlat, d) :: z) + case _ => + () } fmt(0, (0, false, DocGroup(this)) :: Nil) diff --git a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala index aa454934c1..411a87e4bb 100644 --- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala +++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala @@ -156,7 +156,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) { val printer = new ScalaSigPrinter(stream, printPrivates) printer.printMethodType(m.infoType, false)(()) baos.toString - case None => + case _ => "" } } |