Skip to content

Compiler crashes with MatchError #7868

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
scabug opened this issue Sep 23, 2013 · 2 comments
Closed

Compiler crashes with MatchError #7868

scabug opened this issue Sep 23, 2013 · 2 comments
Assignees
Labels
Milestone

Comments

@scabug
Copy link

scabug commented Sep 23, 2013

Compiler crashes with following code.

object A {
  def unapply(n: Int): Option[Int] = Some(n)

  def run = (0: Short) match {
    case A(_) =>
    case _    =>
  }
}

Crash logs:

// 2.10.3-RC2 and 2.10.2

     while compiling: Sample.scala
        during phase: patmat
     library version: version 2.10.3-RC2
    compiler version: version 2.10.3-RC2
  reconstructed args: 

  last tree to typer: TypeTree(class Unit)
              symbol: class Unit in package scala (flags: final abstract)
   symbol definition: final abstract class Unit extends AnyVal
                 tpe: Unit
       symbol owners: class Unit -> package scala
      context owners: method run -> object A -> package <empty>

== Enclosing template or block ==

DefDef( // def run: Unit in object A
  <method>
  "run"
  []
  Nil
  <tpt> // tree.tpe=Unit
  Match( // tree.tpe=Unit
    Typed( // tree.tpe=Short
      0
      <tpt> // tree.tpe=Short
    )
    // 2 cases
    CaseDef( // tree.tpe=Unit
      UnApply( // tree.tpe=Short
        Apply( // def unapply(n: Int): Option[Int] in object A, tree.tpe=Option[Int]
          "A"."unapply" // def unapply(n: Int): Option[Int] in object A, tree.tpe=(n: Int)Option[Int]
          "<unapply-selector>"."toInt" // def toInt: Int in class Short, tree.tpe=Int
        )
        List(
          "_" // tree.tpe=Int
        )
      )
      ()
    )
    CaseDef( // tree.tpe=Unit
      "_" // tree.tpe=Short
      ()
    )
  )
)

== Expanded type of tree ==

TypeRef(TypeSymbol(final abstract class Unit extends AnyVal))

unhandled exception while transforming Sample.scala
error: uncaught exception during compilation: scala.MatchError
error: scala.MatchError: None (of class scala.None$)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.extractorCall$lzycompute(MatchTranslation.scala:577)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.extractorCall(MatchTranslation.scala:577)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.tpe(MatchTranslation.scala:579)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.isTyped(MatchTranslation.scala:580)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateExtractorPattern$1(MatchTranslation.scala:243)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translatePattern(MatchTranslation.scala:310)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translatePattern(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateCase(MatchTranslation.scala:231)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateCase(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$4.apply(MatchTranslation.scala:153)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$4.apply(MatchTranslation.scala:153)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.immutable.List.foreach(List.scala:318)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateMatch(MatchTranslation.scala:153)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateMatch(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:60)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1235)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1233)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1232)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925)
	at scala.collection.immutable.List.loop$1(List.scala:170)
	at scala.collection.immutable.List.mapConserve(List.scala:186)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1276)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2904)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1285)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1284)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1283)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925)
	at scala.collection.immutable.List.loop$1(List.scala:170)
	at scala.collection.immutable.List.mapConserve(List.scala:186)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1298)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1298)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1297)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:46)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:46)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:46)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:227)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:464)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431)
	at scala.collection.Iterator$class.foreach(Iterator.scala:727)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:431)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1662)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
	at scala.tools.nsc.Main$.doCompile(Main.scala:79)
	at scala.tools.nsc.Driver.process(Driver.scala:54)
	at scala.tools.nsc.Driver.main(Driver.scala:67)
	at scala.tools.nsc.Main.main(Main.scala)

Exception in thread "main" scala.MatchError: None (of class scala.None$)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.extractorCall$lzycompute(MatchTranslation.scala:577)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.extractorCall(MatchTranslation.scala:577)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.tpe(MatchTranslation.scala:579)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.isTyped(MatchTranslation.scala:580)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateExtractorPattern$1(MatchTranslation.scala:243)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translatePattern(MatchTranslation.scala:310)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translatePattern(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateCase(MatchTranslation.scala:231)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateCase(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$4.apply(MatchTranslation.scala:153)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$4.apply(MatchTranslation.scala:153)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
	at scala.collection.immutable.List.foreach(List.scala:318)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateMatch(MatchTranslation.scala:153)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateMatch(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:60)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1235)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1233)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1232)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925)
	at scala.collection.immutable.List.loop$1(List.scala:170)
	at scala.collection.immutable.List.mapConserve(List.scala:186)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1276)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2904)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1285)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1284)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1283)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925)
	at scala.collection.immutable.List.loop$1(List.scala:170)
	at scala.collection.immutable.List.mapConserve(List.scala:186)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1298)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1298)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1297)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:46)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:46)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:46)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:227)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:464)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431)
	at scala.collection.Iterator$class.foreach(Iterator.scala:727)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:431)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1662)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
	at scala.tools.nsc.Main$.doCompile(Main.scala:79)
	at scala.tools.nsc.Driver.process(Driver.scala:54)
	at scala.tools.nsc.Driver.main(Driver.scala:67)
	at scala.tools.nsc.Main.main(Main.scala)
```scala

{code:title=2.11.0-M5}
error: scala.MatchError: A.unapply(<unapply-selector>.toInt) (of class scala.reflect.internal.Trees$Apply)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.<init>(MatchTranslation.scala:553)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCall$.apply(MatchTranslation.scala:362)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.extractor$lzycompute(MatchTranslation.scala:47)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.extractor(MatchTranslation.scala:47)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.extractorStep(MatchTranslation.scala:94)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.nextStep(MatchTranslation.scala:133)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.translate(MatchTranslation.scala:141)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translatePattern(MatchTranslation.scala:297)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translatePattern(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateCase(MatchTranslation.scala:294)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateCase(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$3.apply(MatchTranslation.scala:217)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$3.apply(MatchTranslation.scala:217)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
	at scala.collection.immutable.List.foreach(List.scala:304)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
	at scala.collection.AbstractTraversable.map(Traversable.scala:104)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateMatch(MatchTranslation.scala:217)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateMatch(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:60)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1308)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1306)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1305)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2656)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2654)
	at scala.collection.immutable.List.loop$1(List.scala:174)
	at scala.collection.immutable.List.mapConserve(List.scala:190)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2654)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1349)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:40)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2632)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1358)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1357)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1356)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2656)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2654)
	at scala.collection.immutable.List.loop$1(List.scala:174)
	at scala.collection.immutable.List.mapConserve(List.scala:190)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2654)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1371)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1371)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1370)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:42)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:42)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:42)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:147)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:420)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:387)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:387)
	at scala.collection.Iterator$class.foreach(Iterator.scala:743)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:387)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1525)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1510)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1506)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1603)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:34)
	at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
	at scala.tools.nsc.Driver.process(Driver.scala:55)
	at scala.tools.nsc.Driver.main(Driver.scala:68)
	at scala.tools.nsc.Main.main(Main.scala)

Exception in thread "main" scala.MatchError: A.unapply(<unapply-selector>.toInt) (of class scala.reflect.internal.Trees$Apply)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCallRegular.<init>(MatchTranslation.scala:553)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$ExtractorCall$.apply(MatchTranslation.scala:362)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.extractor$lzycompute(MatchTranslation.scala:47)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.extractor(MatchTranslation.scala:47)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.extractorStep(MatchTranslation.scala:94)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.nextStep(MatchTranslation.scala:133)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.translate(MatchTranslation.scala:141)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translatePattern(MatchTranslation.scala:297)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translatePattern(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateCase(MatchTranslation.scala:294)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateCase(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$3.apply(MatchTranslation.scala:217)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$3.apply(MatchTranslation.scala:217)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
	at scala.collection.immutable.List.foreach(List.scala:304)
	at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
	at scala.collection.AbstractTraversable.map(Traversable.scala:104)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateMatch(MatchTranslation.scala:217)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateMatch(PatternMatching.scala:87)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:60)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1308)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1306)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1305)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2656)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2654)
	at scala.collection.immutable.List.loop$1(List.scala:174)
	at scala.collection.immutable.List.mapConserve(List.scala:190)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2654)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1349)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:40)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2632)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1358)
	at scala.reflect.internal.Trees$$anonfun$itransform$5.apply(Trees.scala:1357)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1356)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2656)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2654)
	at scala.collection.immutable.List.loop$1(List.scala:174)
	at scala.collection.immutable.List.mapConserve(List.scala:190)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2654)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1371)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1371)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1370)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:14)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2624)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:42)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:42)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2667)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:42)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:71)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:55)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:147)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:420)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:387)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:387)
	at scala.collection.Iterator$class.foreach(Iterator.scala:743)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1174)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:387)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1525)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1510)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1506)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1603)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:34)
	at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
	at scala.tools.nsc.Driver.process(Driver.scala:55)
	at scala.tools.nsc.Driver.main(Driver.scala:68)
	at scala.tools.nsc.Main.main(Main.scala)
@scabug
Copy link
Author

scabug commented Sep 23, 2013

Imported From: https://issues.scala-lang.org/browse/SI-7868?orig=1
Reporter: Tsukasa Kitachi (kxbmap)
Affected Versions: 2.10.2, 2.10.3-RC2, 2.11.0-M5

@scabug
Copy link
Author

scabug commented Sep 23, 2013

@retronym said:
scala/scala#2975

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants