Skip to content
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

Handle BoundedWildcardType in Erasure (or don't emit it earlier) #2038

Closed
scabug opened this issue Jun 4, 2009 · 7 comments
Closed

Handle BoundedWildcardType in Erasure (or don't emit it earlier) #2038

scabug opened this issue Jun 4, 2009 · 7 comments
Assignees
Milestone

Comments

@scabug
Copy link

scabug commented Jun 4, 2009

It's a little more complicated than the title suggests, could not think of a better name. Searched trac and could not find any duplicates.

The compiler crashes with both 2.7.4 and nightly build 2.8.0r17986

In any case here is the code:

object TypedConverter {
  def apply[A,B](from : Class[A], to : Class[B])(convert : (A)=>B) = {
    new TypedConverter[A,B](from, to, convert)
  }
}

class TypedConverter[A,B](val from : Class[A], val to : Class[B], val convert : (A)=>B) {
}

object StandardConverters {
  
  //Gets the combinationr2 of a list
  //that is for the list [1,2,3] -> [(1,2),(1,3),(2,3)]
  //Not at all efficient!
  final def comb2[A](xs : List[A]) : List[(A,A)] = {
    xs match {
      case Nil => Nil
      case x::Nil => Nil
      case x::xs => xs.map(y=>(x,y)):::comb2(xs)
    }
  }

  
  val ints = comb2(List(java.lang.Integer.TYPE, classOf[java.lang.Integer], classOf[Int])).map {
    case (f: Class[a],t: Class[b]) =>
      //CRASHES THE COMPILER!
      TypedConverter(f,t){x: a => t.cast(x)}
    }
}

Here is the 2.8.0 explosion trace (props to showing more than the stack trace, makes it easier to find & work around the problem in large scala projects when you aren't very sure which file is causing the crash)

exception when typing comb2(List(java.lang.Integer.TYPE, classOf[java.lang.Integer], classOf[Int])).map(<empty> match {
  case scala.Tuple2((f @ _), (t @ _)) => TypedConverter(f, t)((t.cast: (() => <empty>)))
}), pt = ?
exception when typing final object StandardConverters extends scala.ScalaObject {
  def this() = {
    super.<init>();
    ()
  };
  final def comb2[A >: Nothing <: Any](xs: List[A]): List[(A, A)] = xs match {
    case Nil => Nil
    case $$colon$$colon((x @ _), Nil) => Nil
    case $$colon$$colon((x @ _), (xs @ _)) => {
      <synthetic> val x$$1 = xs.map(((y) => scala.Tuple2(x, y)));
      comb2(xs).$$colon$$colon$$colon(x$$1)
    }
  };
  private[this] val ints = comb2(List(java.lang.Integer.TYPE, classOf[java.lang.Integer], classOf[Int])).map(<empty> match {
    case scala.Tuple2((f @ _), (t @ _)) => TypedConverter(f, t)((t.cast: (() => <empty>)))
  })
}, pt = ?
exception when typing package <empty> {
  final object TypedConverter extends scala.ScalaObject {
    def this(): object TypedConverter = {
      TypedConverter.super.this();
      ()
    };
    def apply[A >: Nothing <: Any, B >: Nothing <: Any](from: Class[A], to: Class[B])(convert: _root_.scala.Function1[A, B]): TypedConverter[A,B] = new TypedConverter[A, B](from, to, convert)
  };
  class TypedConverter[A >: Nothing <: Any, B >: Nothing <: Any] extends scala.ScalaObject {
    <paramaccessor> private[this] val from: Class[A] = _;
    <paramaccessor> private[this] val to: Class[B] = _;
    <paramaccessor> private[this] val convert: (A) => B = _;
    def this(from: Class[A], to: Class[B], convert: _root_.scala.Function1[A, B]): TypedConverter[A,B] = {
      TypedConverter.super.this();
      ()
    };
    <empty>
  };
  final object StandardConverters extends scala.ScalaObject {
    def this() = {
      super.<init>();
      ()
    };
    final def comb2[A >: Nothing <: Any](xs: List[A]): List[(A, A)] = xs match {
      case Nil => Nil
      case $$colon$$colon((x @ _), Nil) => Nil
      case $$colon$$colon((x @ _), (xs @ _)) => {
        <synthetic> val x$$1 = xs.map(((y) => scala.Tuple2(x, y)));
        comb2(xs).$$colon$$colon$$colon(x$$1)
      }
    };
    private[this] val ints = comb2(List(java.lang.Integer.TYPE, classOf[java.lang.Integer], classOf[Int])).map(<empty> match {
      case scala.Tuple2((f @ _), (t @ _)) => TypedConverter(f, t)((t.cast: (() => <empty>)))
    })
  }
}, pt = ?
Exception in thread "main" java.lang.AssertionError: assertion failed: type _1
	at scala.Predef$$.assert(Predef.scala:97)
	at scala.tools.nsc.symtab.Symbols$$Symbol.fullNameString(Symbols.scala:1395)
	at scala.tools.nsc.symtab.Symbols$$Symbol.fullNameString(Symbols.scala:1405)
	at scala.tools.nsc.symtab.Types$$TypeRef.safeToString(Types.scala:1586)
	at scala.tools.nsc.symtab.Types$$Type.toString(Types.scala:820)
	at java.lang.String.valueOf(String.java:2826)
	at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:247)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$addString$$1.apply(TraversableTemplate.scala:744)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$addString$$1.apply(TraversableTemplate.scala:741)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.addString(TraversableTemplate.scala:741)
	at scala.collection.immutable.List.addString(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.mkString(TraversableTemplate.scala:713)
	at scala.collection.immutable.List.mkString(List.scala:26)
	at scala.tools.nsc.symtab.Types$$TypeRef.safeToString(Types.scala:1592)
	at scala.tools.nsc.symtab.Types$$Type.toString(Types.scala:820)
	at java.lang.String.valueOf(String.java:2826)
	at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:247)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$addString$$1.apply(TraversableTemplate.scala:744)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$addString$$1.apply(TraversableTemplate.scala:741)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.addString(TraversableTemplate.scala:741)
	at scala.collection.immutable.List.addString(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.mkString(TraversableTemplate.scala:713)
	at scala.collection.immutable.List.mkString(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.toString(TraversableTemplate.scala:760)
	at scala.collection.generic.SequenceTemplate$$class.toString(SequenceTemplate.scala:488)
	at scala.collection.immutable.List.toString(List.scala:26)
	at java.lang.String.valueOf(String.java:2826)
	at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:247)
	at scala.collection.mutable.LinkedHashMap$$$$anonfun$$tableString$$1.apply(LinkedHashMap.scala:144)
	at scala.collection.mutable.LinkedHashMap$$$$anonfun$$tableString$$1.apply(LinkedHashMap.scala:140)
	at scala.Range.foreach(Range.scala:171)
	at scala.collection.mutable.LinkedHashMap.tableString(LinkedHashMap.scala:140)
	at scala.collection.mutable.LinkedHashMap.resize(LinkedHashMap.scala:119)
	at scala.collection.mutable.HashTable$$class.addEntry(HashTable.scala:83)
	at scala.collection.mutable.LinkedHashMap.addEntry(LinkedHashMap.scala:29)
	at scala.collection.mutable.LinkedHashMap.put(LinkedHashMap.scala:51)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.addType$$1(Implicits.scala:522)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:531)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:533)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:532)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:532)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:533)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:532)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:532)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:533)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:532)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:532)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:533)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:532)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:532)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:533)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:532)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:532)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:533)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$1.apply(Implicits.scala:532)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:532)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$2.apply(Implicits.scala:535)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch$$$$anonfun$$getParts$$1$$2.apply(Implicits.scala:535)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.getParts$$1(Implicits.scala:535)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.parts(Implicits.scala:565)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.implicitsOfExpectedType(Implicits.scala:574)
	at scala.tools.nsc.typechecker.Implicits$$ImplicitSearch.<init>(Implicits.scala:662)
	at scala.tools.nsc.typechecker.Implicits$$class.inferImplicit(Implicits.scala:59)
	at scala.tools.nsc.Global$$analyzer$$.inferImplicit(Global.scala:329)
	at scala.tools.nsc.typechecker.Typers$$Typer.implicitArg$$1(Typers.scala:180)
	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$2.apply(Typers.scala:185)
	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$2.apply(Typers.scala:185)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$map$$1.apply(TraversableTemplate.scala:153)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$map$$1.apply(TraversableTemplate.scala:153)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.map(TraversableTemplate.scala:153)
	at scala.collection.immutable.List.map(List.scala:26)
	at scala.tools.nsc.typechecker.Typers$$Typer.applyImplicitArgs(Typers.scala:185)
	at scala.tools.nsc.typechecker.Typers$$Typer.adapt(Typers.scala:779)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:3750)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:3798)
	at scala.tools.nsc.typechecker.Typers$$Typer.computeType(Typers.scala:3849)
	at scala.tools.nsc.typechecker.Namers$$Namer.typeSig(Namers.scala:1099)
	at scala.tools.nsc.typechecker.Namers$$Namer$$$$anonfun$$typeCompleter$$1.apply(Namers.scala:451)
	at scala.tools.nsc.typechecker.Namers$$Namer$$$$anonfun$$typeCompleter$$1.apply(Namers.scala:449)
	at scala.tools.nsc.typechecker.Namers$$$$anon$$1.complete(Namers.scala:1246)
	at scala.tools.nsc.symtab.Symbols$$Symbol.info(Symbols.scala:688)
	at scala.tools.nsc.symtab.Symbols$$Symbol.initialize(Symbols.scala:797)
	at scala.tools.nsc.typechecker.Typers$$Typer.addGetterSetter(Typers.scala:1258)
	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$11.apply(Typers.scala:1342)
	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$11.apply(Typers.scala:1342)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$flatMap$$1.apply(TraversableTemplate.scala:164)
	at scala.collection.generic.TraversableTemplate$$$$anonfun$$flatMap$$1.apply(TraversableTemplate.scala:164)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.collection.generic.TraversableTemplate$$class.flatMap(TraversableTemplate.scala:164)
	at scala.collection.immutable.List.flatMap(List.scala:26)
	at scala.tools.nsc.typechecker.Typers$$Typer.typedTemplate(Typers.scala:1342)
	at scala.tools.nsc.typechecker.Typers$$Typer.typedModuleDef(Typers.scala:1237)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3475)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:3745)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:3787)
	at scala.tools.nsc.typechecker.Typers$$Typer.typedStat$$1(Typers.scala:1758)
	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$21.apply(Typers.scala:1815)
	at scala.tools.nsc.typechecker.Typers$$Typer$$$$anonfun$$21.apply(Typers.scala:1815)
	at scala.collection.immutable.List$$.loop$$4(List.scala:714)
	at scala.collection.immutable.List$$.mapConserve(List.scala:731)
	at scala.collection.immutable.List$$.loop$$4(List.scala:718)
	at scala.collection.immutable.List$$.mapConserve(List.scala:731)
	at scala.collection.immutable.List$$.loop$$4(List.scala:718)
	at scala.collection.immutable.List$$.mapConserve(List.scala:731)
	at scala.tools.nsc.typechecker.Typers$$Typer.typedStats(Typers.scala:1815)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed1(Typers.scala:3468)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:3745)
	at scala.tools.nsc.typechecker.Typers$$Typer.typed(Typers.scala:3787)
	at scala.tools.nsc.typechecker.Analyzer$$typerFactory$$$$anon$$2.apply(Analyzer.scala:80)
	at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:312)
	at scala.tools.nsc.typechecker.Analyzer$$typerFactory$$$$anon$$2$$$$anonfun$$run$$1.apply(Analyzer.scala:50)
	at scala.tools.nsc.typechecker.Analyzer$$typerFactory$$$$anon$$2$$$$anonfun$$run$$1.apply(Analyzer.scala:50)
	at scala.collection.Iterator$$class.foreach(Iterator.scala:500)
	at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:280)
	at scala.tools.nsc.typechecker.Analyzer$$typerFactory$$$$anon$$2.run(Analyzer.scala:50)
	at scala.tools.nsc.Global$$Run.compileSources(Global.scala:772)
	at scala.tools.nsc.Global$$Run.compile(Global.scala:846)
	at scala.tools.nsc.Main$$.process(Main.scala:73)
	at scala.tools.nsc.Main$$.main(Main.scala:87)
	at scala.tools.nsc.Main.main(Main.scala)

and here is the 2.7.4 trace (in case anyone cares)

java.lang.Error: Unknown type: ?
	at scala.tools.nsc.Global.abort(Global.scala:154)
	at scala.tools.nsc.backend.icode.TypeKinds$$class.toTypeKind(TypeKinds.scala:453)
	at scala.tools.nsc.backend.icode.ICodes.toTypeKind(ICodes.scala:21)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:106)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.List.foreach(List.scala:834)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:136)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:90)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.List.foreach(List.scala:834)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:81)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:67)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.apply(GenICode.scala:63)
	at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:268)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:247)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:247)
	at scala.Iterator$$class.foreach(Iterator.scala:410)
	at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:266)
	at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:247)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.run(GenICode.scala:56)
	at scala.tools.nsc.Global$$Run.compileSources(Global.scala:579)
	at scala.tools.nsc.Interpreter$$Request.compile(Interpreter.scala:824)
	at scala.tools.nsc.Interpreter.interpret(Interpreter.scala:505)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1$$InterpWrapper$$1.interpret(ScalaProcessor.scala:39)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1$$$$anonfun$$apply$$2$$$$anonfun$$apply$$1.interpret$$1(ScalaProcessor.scala:99)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1$$$$anonfun$$apply$$2$$$$anonfun$$apply$$1.apply(ScalaProcessor.scala:145)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1$$$$anonfun$$apply$$2$$$$anonfun$$apply$$1.apply(ScalaProcessor.scala:95)
	at scala.actors.Actor$$class.receive(Actor.scala:436)
	at scala.actors.Actor$$$$anon$$1.receive(Actor.scala:89)
	at scala.actors.Actor$$.receive(Actor.scala:144)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1$$$$anonfun$$apply$$2.apply(ScalaProcessor.scala:95)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1$$$$anonfun$$apply$$2.apply(ScalaProcessor.scala:95)
	at scala.actors.Actor$$class.scala$$actors$$Actor$$$$seq(Actor.scala:798)
	at scala.actors.Actor$$$$anon$$7.andThen(Actor.scala:252)
	at scala.actors.Actor$$.loop(Actor.scala:261)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1.apply(ScalaProcessor.scala:94)
	at org.scalide.processors.ScalaProcessor$$$$anonfun$$1.apply(ScalaProcessor.scala:26)
	at scala.actors.Actor$$$$anon$$1.act(Actor.scala:90)
	at scala.actors.Reaction.run(Reaction.scala:76)
	at scala.actors.Actor$$$$anonfun$$start$$1.apply(Actor.scala:780)
	at scala.actors.Actor$$$$anonfun$$start$$1.apply(Actor.scala:778)
	at scala.actors.Scheduler$$$$anon$$3.run(Scheduler.scala:88)
	at scala.actors.FJTaskRunner.scanWhileIdling(Unknown Source)
	at scala.actors.FJTaskRunner.run(Unknown Source)
@scabug
Copy link
Author

scabug commented Jun 4, 2009

Imported From: https://issues.scala-lang.org/browse/SI-2038?orig=1
Reporter: Ben Jackman (bjackman)

@scabug
Copy link
Author

scabug commented Jun 22, 2009

@phaller said:
Using trunk (r18077), I get the following stack trace:

at scala.tools.nsc.Global.abort(Global.scala:188)
	at scala.tools.nsc.backend.icode.TypeKinds$$class.toTypeKind(TypeKinds.scala:453)
	at scala.tools.nsc.backend.icode.ICodes.toTypeKind(ICodes.scala:21)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:106)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:136)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:90)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase$$$$anonfun$$gen$$1.apply(GenICode.scala:71)
	at scala.collection.generic.LinearSequenceTemplate$$class.foreach(LinearSequenceTemplate.scala:81)
	at scala.collection.immutable.List.foreach(List.scala:26)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:71)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:81)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.gen(GenICode.scala:67)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.apply(GenICode.scala:63)
	at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:312)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:291)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:291)
	at scala.collection.Iterator$$class.foreach(Iterator.scala:500)
	at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:280)
	at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:291)
	at scala.tools.nsc.backend.icode.GenICode$$ICodePhase.run(GenICode.scala:56)
	at scala.tools.nsc.Global$$Run.compileSources(Global.scala:780)
	at scala.tools.nsc.Global$$Run.compile(Global.scala:854)
	at scala.tools.nsc.Main$$.process(Main.scala:73)
	at scala.tools.nsc.Main$$.main(Main.scala:87)
	at scala.tools.nsc.Main.main(Main.scala)

I reassign to Iulian; even if the problem is not in GenICode, you might know where it comes from.

@scabug
Copy link
Author

scabug commented Sep 4, 2009

@dragos said:
This is again a case where the pattern matcher introduces a wildcard type that is not inferred. If you print trees after explicit outer, a temporary and the result of the partial function are '?', the un-inferred wildcard type. Not sure whom to assign it to, but since it happens during pattern matching expansion, Paul is the (temporary) winner.

@scabug
Copy link
Author

scabug commented Mar 14, 2011

@soc said:
This crashes the REPL on 2.9.0.r24394-b20110307020059 with a CCE:

java.lang.ClassCastException: scala.tools.nsc.symtab.Types$$TypeRef$$$$anon$$6 cannot be cast to scala.tools.nsc.symtab.Types$$TypeBounds
	at scala.tools.nsc.symtab.Types$$TypeMap.mapOver(Types.scala:3064)
	at scala.tools.nsc.transform.Erasure$$erasure$$.apply(Erasure.scala:171)
	at scala.tools.nsc.transform.Erasure$$erasure$$.apply(Erasure.scala:159)
	at scala.tools.nsc.transform.Erasure.transformInfo(Erasure.scala:421)
	at scala.tools.nsc.transform.InfoTransform$$Phase$$$$anon$$1.transform(InfoTransform.scala:38)
	at scala.tools.nsc.symtab.Symbols$$Symbol.rawInfo(Symbols.scala:791)
	at scala.tools.nsc.symtab.Symbols$$Symbol.info(Symbols.scala:734)
	at scala.tools.nsc.symtab.Symbols$$Symbol.tpe(Symbols.scala:696)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$2.apply$$mcZ$$sp(Erasure.scala:786)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$2.apply(Erasure.scala:787)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anonfun$$2.apply(Erasure.scala:787)
	at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:96)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer.bridgeDefs(Erasure.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer.addBridges(Erasure.scala:848)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.preErase(Erasure.scala:997)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1019)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformTrees$$1.apply(Trees.scala:859)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformTrees$$1.apply(Trees.scala:859)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTrees(Trees.scala:859)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:823)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:807)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:807)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:807)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$5.apply(Trees.scala:769)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$5.apply(Trees.scala:767)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:766)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1024)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:783)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:785)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformTrees$$1.apply(Trees.scala:859)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformTrees$$1.apply(Trees.scala:859)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTrees(Trees.scala:859)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:823)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$4.apply(Trees.scala:763)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$4.apply(Trees.scala:762)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:761)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:783)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:783)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:783)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:783)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:783)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:861)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:753)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:752)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:751)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:877)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:875)
	at scala.collection.immutable.List.loop$$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:875)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:747)
	at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:747)
	at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:885)
	at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:746)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer$$$$anon$$2.transform(Erasure.scala:1028)
	at scala.tools.nsc.transform.Erasure$$ErasureTransformer.transform(Erasure.scala:1038)
	at scala.tools.nsc.ast.Trees$$Transformer.transformUnit(Trees.scala:878)
	at scala.tools.nsc.transform.Transform$$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:325)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$applyPhase$$1.apply(Global.scala:325)
	at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
	at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:325)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:294)
	at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:294)
	at scala.collection.Iterator$$class.foreach(Iterator.scala:646)
	at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:311)
	at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:294)
	at scala.tools.nsc.Global$$Run.compileSources(Global.scala:888)
	at scala.tools.nsc.interpreter.IMain$$ReadEvalPrint.compileAndSaveRun(IMain.scala:706)
	at scala.tools.nsc.interpreter.IMain$$ReadEvalPrint.compile(IMain.scala:674)
	at scala.tools.nsc.interpreter.IMain$$Request.compile(IMain.scala:818)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:576)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:542)
	at scala.tools.nsc.interpreter.ILoop.reallyInterpret$$1(ILoop.scala:669)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:721)
	at scala.tools.nsc.interpreter.ILoop.reallyInterpret$$1(ILoop.scala:687)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:721)
	at scala.tools.nsc.interpreter.ILoop.reallyInterpret$$1(ILoop.scala:687)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:721)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:554)
	at scala.tools.nsc.interpreter.ILoop.processLine$$1(ILoop.scala:445)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:452)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:789)
	at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:814)
	at scala.tools.nsc.MainGenericRunner$$.process(MainGenericRunner.scala:76)
	at scala.tools.nsc.MainGenericRunner$$.main(MainGenericRunner.scala:32)
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

@scabug
Copy link
Author

scabug commented Jul 4, 2011

@soc said:
Updated Stacktrace on 2.10.0.r25228-b20110704020234:

java.lang.ClassCastException: scala.reflect.internal.Types$UniqueTypeRef cannot be cast to scala.reflect.internal.Types$TypeBounds
	at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:3197)
	at scala.tools.nsc.transform.Erasure$erasure$.apply(Erasure.scala:214)
	at scala.tools.nsc.transform.Erasure$erasure$.apply(Erasure.scala:202)
	at scala.tools.nsc.transform.Erasure.transformInfo(Erasure.scala:525)
	at scala.tools.nsc.transform.InfoTransform$Phase$$anon$1.transform(InfoTransform.scala:38)
	at scala.reflect.internal.Symbols$Symbol.rawInfo(Symbols.scala:849)
	at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:792)
	at scala.reflect.internal.Symbols$Symbol.tpe(Symbols.scala:754)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$2.apply$mcZ$sp(Erasure.scala:908)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$2.apply(Erasure.scala:909)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$2.apply(Erasure.scala:909)
	at scala.reflect.internal.SymbolTable.atPhase(SymbolTable.scala:91)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.bridgeDefs(Erasure.scala:907)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.addBridges(Erasure.scala:970)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.preErase(Erasure.scala:1146)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1168)
	at scala.reflect.internal.Trees$Transformer.transformTemplate(Trees.scala:1464)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1356)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1355)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1354)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1388)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:1462)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:1462)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformTrees(Trees.scala:1462)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1426)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1388)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1410)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1388)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1410)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1388)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:1372)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:1370)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1369)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1173)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1386)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transformTemplate(Trees.scala:1464)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1356)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1355)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1354)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1388)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:1462)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:1462)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformTrees(Trees.scala:1462)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1426)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$4.apply(Trees.scala:1366)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$4.apply(Trees.scala:1365)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1364)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1386)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transformTemplate(Trees.scala:1464)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1356)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1355)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1354)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1386)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transformTemplate(Trees.scala:1464)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1356)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1355)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1354)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1386)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transformTemplate(Trees.scala:1464)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1356)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1355)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1354)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1386)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer.transformTemplate(Trees.scala:1464)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1356)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1355)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1354)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1480)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:1478)
	at scala.collection.immutable.List.loop$1(List.scala:117)
	at scala.collection.immutable.List.mapConserve(List.scala:133)
	at scala.reflect.internal.Trees$Transformer.transformStats(Trees.scala:1478)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:1350)
	at scala.reflect.internal.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:1350)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.reflect.internal.Trees$Transformer.transform(Trees.scala:1349)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
	at scala.reflect.internal.Trees$Transformer.atOwner(Trees.scala:1487)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:51)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$1.transform(Erasure.scala:1177)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:1187)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:14)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:344)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:312)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:312)
	at scala.collection.Iterator$class.foreach(Iterator.scala:655)
	at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:316)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:312)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:990)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:726)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:701)
	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:843)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:569)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:532)
	at scala.tools.nsc.interpreter.ILoop.pasteCommand(ILoop.scala:658)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$standardCommands$9.apply(ILoop.scala:220)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$standardCommands$9.apply(ILoop.scala:220)
	at scala.tools.nsc.interpreter.LoopCommands$LoopCommand$$anonfun$nullary$1.apply(LoopCommands.scala:61)
	at scala.tools.nsc.interpreter.LoopCommands$LoopCommand$$anonfun$nullary$1.apply(LoopCommands.scala:61)
	at scala.tools.nsc.interpreter.LoopCommands$NullaryCmd.apply(LoopCommands.scala:72)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:642)
	at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:539)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:547)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:818)
	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:67)
	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:80)
	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

@scabug
Copy link
Author

scabug commented Jul 23, 2012

@adriaanm said:
reduced:

class Test {
  List(Some(classOf[java.lang.Integer]), Some(classOf[Int])).map {
    case Some(f: Class[_]) => f.cast(???)
  }
}

@scabug
Copy link
Author

scabug commented Jul 23, 2012

@adriaanm said:
scala/scala#981

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

No branches or pull requests

2 participants