Aladdin - Scala Bugtracking
[#611] project: compiler priority: low category: bug
submitter assigned to status date submitted
Nikolay Martin fixed 2006-05-19 12:06:50.0
subject lub/glb crash [from contribution #60]
code
package bug.contrib_60;

abstract class Field {
  type FieldType;

  var internalValue: FieldType;
}

case class IntField(value: int) extends Field {
  type FieldType = int;

  var internalValue: FieldType = value;
}

case class StringField(value: String) extends Field {
  type FieldType = String;

  var internalValue: FieldType = value;
}

object Test {
  def main (ars:scala.Array[String])= {
    Console.println(List(new StringField ("bar"), new IntField(8)))
  }
}
what happened

Exception in thread "main" java.lang.Error: lub/glb of incompatible types: (scala.Int)scala.Unit and (java.lang.\
String)scala.Unit        at scala.tools.nsc.symtab.Types$$anonfun$99.apply(Types.scala:2111)
        at scala.tools.nsc.symtab.Types$$anonfun$99.apply(Types.scala:2107)
        at scala.List.map(List.scala:652)
        at scala.tools.nsc.symtab.Types$class.matchingRestypes(Types.scala:2107)
        at scala.tools.nsc.symtab.Types$class.lub0$0(Types.scala:1870)
        at scala.tools.nsc.symtab.Types$$anonfun$72.apply(Types.scala:1928)
        at scala.tools.nsc.symtab.Types$$anonfun$72.apply(Types.scala:1928)
        at scala.tools.nsc.symtab.Types$class.limitRecursion(Types.scala:1745)
        at scala.tools.nsc.symtab.Types$class.lub(Types.scala:1928)
        at scala.tools.nsc.symtab.SymbolTable.lub(SymbolTable.scala:10)
        at scala.tools.nsc.symtab.Types$class.lubsym$0(Types.scala:1897)
        at scala.tools.nsc.symtab.Types$$anonfun$70.apply(Types.scala:1919)
        at scala.tools.nsc.symtab.Types$$anonfun$70.apply(Types.scala:1915)
        at scala.List.foreach(List.scala:681)
        at scala.tools.nsc.symtab.Types$class.lub0$0(Types.scala:1915)
        at scala.tools.nsc.symtab.Types$$anonfun$72.apply(Types.scala:1928)
        at scala.tools.nsc.symtab.Types$$anonfun$72.apply(Types.scala:1928)
        at scala.tools.nsc.symtab.Types$class.limitRecursion(Types.scala:1745)
        at scala.tools.nsc.symtab.Types$class.lub(Types.scala:1928)
        at scala.tools.nsc.symtab.SymbolTable.lub(SymbolTable.scala:10)
        at scala.tools.nsc.typechecker.Infer$class.solveOne$0(Infer.scala:130)
        at scala.tools.nsc.typechecker.Infer$$anonfun$9.apply(Infer.scala:133)
        at scala.tools.nsc.typechecker.Infer$$anonfun$9.apply(Infer.scala:133)
        at scala.List.foreach(List.scala:681)
        at scala.tools.nsc.typechecker.Infer$class.scala$tools$nsc$typechecker$Infer$$solve(Infer.scala:133)
        at scala.tools.nsc.typechecker.Infer$Inferencer.methTypeArgs(Infer.scala:372)
        at scala.tools.nsc.typechecker.Infer$Inferencer.inferMethodInstance(Infer.scala:486)
        at scala.tools.nsc.typechecker.Typers$Typer.typedApply$0(Typers.scala:1092)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1524)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1640)
        at scala.tools.nsc.typechecker.Typers$Typer.typedArg$0(Typers.scala:1035)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$52.apply(Typers.scala:1066)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$52.apply(Typers.scala:1066)
        at scala.List$.map2(List.scala:265)
        at scala.tools.nsc.typechecker.Typers$Typer.typedApply$0(Typers.scala:1066)
        at scala.tools.nsc.typechecker.Typers$Typer.tryTypedApply$0(Typers.scala:1129)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1523)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1640)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1666)
        at scala.tools.nsc.typechecker.Typers$Typer.computeType(Typers.scala:1697)
        at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:409)
        at scala.tools.nsc.typechecker.Namers$Namer.liftedTry0$0(Namers.scala:477)
        at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$typeSig(Namers.sca\
la:463)
        at scala.tools.nsc.typechecker.Namers$Namer$$anon$0.complete(Namers.scala:312)
        at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:346)
        at scala.tools.nsc.symtab.Symbols$Symbol.initialize(Symbols.scala:419)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1300)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1640)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1666)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$46.apply(Typers.scala:984)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$46.apply(Typers.scala:974)
        at scala.List$.loop$0(List.scala:232)
        at scala.List$.mapConserve(List.scala:249)
        at scala.List$.loop$0(List.scala:236)
        at scala.List$.mapConserve(List.scala:249)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:974)
        at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:698)
        at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:640)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1312)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1640)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1666)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$46.apply(Typers.scala:984)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$46.apply(Typers.scala:974)
        at scala.List$.loop$0(List.scala:232)
        at scala.List$.mapConserve(List.scala:249)
        at scala.List$.loop$0(List.scala:236)
        at scala.List$.mapConserve(List.scala:249)
        at scala.List$.loop$0(List.scala:236)
        at scala.List$.mapConserve(List.scala:249)
        at scala.List$.loop$0(List.scala:236)
        at scala.List$.mapConserve(List.scala:249)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:974)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1305)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1640)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1666)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$46.apply(Typers.scala:984)
        at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$46.apply(Typers.scala:974)
        at scala.List$.loop$0(List.scala:232)
        at scala.List$.mapConserve(List.scala:249)
        at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:974)
        at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1305)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1640)
        at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1666)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$1.apply(Analyzer.scala:38)
        at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:214)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$1.apply(Global.scala:203)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$1.apply(Global.scala:203)
        at scala.Iterator$class.foreach(Iterator.scala:304)
        at scala.collection.mutable.ListBuffer$$anon$0.foreach(ListBuffer.scala:216)
        at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:203)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:450)
        at scala.tools.nsc.Global$Run.compile(Global.scala:508)
        at scala.tools.nsc.Main$.process(Main.scala:60)
        at scala.tools.nsc.Main$.main(Main.scala:82)
        at scala.tools.nsc.Main.main(Main.scala)

what expected Silent compilation
[back to overview]
Changes of this bug report
Martin  edited on  2006-05-22 12:57:20.0