| [#1088] | project: compiler | priority: low | category: bug | |
|---|---|---|---|---|
| submitter | assigned to | status | date submitted | |
| Nikolay | Martin | fixed | 2007-05-06 23:09:00.0 | |
| subject | [contrib #454] illegal cyclic reference involving type | |||
| code |
// This is the only compiler failure I've experienced while using 2.5.0-RC1
// small variation on code in Aaron Harnly's newsgroup post "referring to the self class"
trait MyNode {
type This <: MyNode
def child: This
}
trait Container {
type This <: Container
type aNode <: MyNode { type This <: aNode }
def root: aNode
def child: aNode = root.child
def child2: aNode = child.child
}
/*
error: illegal cyclic reference involving type aNode
type aNode <: MyNode { type This <: aNode }
^
Exception in thread "main" scala.MatchError: scala.tools.nsc.util.NoPosition$@128635
at scala.tools.nsc.reporters.ConsoleReporter.printMessage(ConsoleReporter.scala:55)
at scala.tools.nsc.reporters.ConsoleReporter.print(ConsoleReporter.scala:68)
at scala.tools.nsc.reporters.ConsoleReporter.display(ConsoleReporter.scala:101)
at scala.tools.nsc.reporters.AbstractReporter.info0(AbstractReporter.scala:36)
at scala.tools.nsc.reporters.Reporter.error(Reporter.scala:39)
at scala.tools.nsc.CompilationUnits$CompilationUnit.error(CompilationUnits.scala:43)
at scala.tools.nsc.typechecker.Contexts$Context.error(Contexts.scala:266)
at scala.tools.nsc.typechecker.Infer$Inferencer.error(Infer.scala:277)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$56.apply(Typers.scala:1370)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$56.apply(Typers.scala:1365)
at scala.List.foreach(List.scala:699)
at scala.tools.nsc.typechecker.Typers$Typer.typedRefinement(Typers.scala:1365)
at scala.tools.nsc.typechecker.Typers$Typer.typedCompoundTypeTree$0(Typers.scala:2355)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:2606)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2641)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$123.apply(Typers.scala:2706)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$123.apply(Typers.scala:2706)
at scala.tools.nsc.symtab.Types$class.withNoGlobalVariance(Types.scala:3012)
at scala.tools.nsc.symtab.SymbolTable.withNoGlobalVariance(SymbolTable.scala:10)
at scala.tools.nsc.typechecker.Typers$Typer.typedType(Typers.scala:2706)
at scala.tools.nsc.typechecker.Namers$Namer.abstractTypeSig(Namers.scala:594)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:652)
at scala.tools.nsc.typechecker.Namers$Namer$$anon$0.complete(Namers.scala:356)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:410)
at scala.tools.nsc.symtab.Symbols$Symbol.initialize(Symbols.scala:518)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:2397)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2641)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2674)
at scala.tools.nsc.typechecker.Typers$Typer.typedStat$0(Typers.scala:1396)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$58.apply(Typers.scala:1426)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$58.apply(Typers.scala:1426)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.List$.loop$0(List.scala:247)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:1426)
at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1056)
at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:951)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:2406)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2641)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2674)
at scala.tools.nsc.typechecker.Typers$Typer.typedStat$0(Typers.scala:1396)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$58.apply(Typers.scala:1426)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$58.apply(Typers.scala:1426)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.List$.loop$0(List.scala:247)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:1426)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:2402)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2641)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:2674)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$1.apply(Analyzer.scala:38)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:241)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$2.apply(Global.scala:230)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$2.apply(Global.scala:230)
at scala.Iterator$class.foreach(Iterator.scala:369)
at scala.collection.mutable.ListBuffer$$anon$0.foreach(ListBuffer.scala:245)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:230)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:498)
at scala.tools.nsc.Global$Run.compile(Global.scala:572)
at scala.tools.nsc.Main$.process(Main.scala:57)
at scala.tools.nsc.Main$.main(Main.scala:77)
at scala.tools.nsc.Main.main(Main.scala)
*/
|
|||
| what happened | compiler stack trace |
|||
| what expected | one or more error messages, as occur with 2.4.0-final | |||
| [back to overview] | ||||
| Nikolay edited on 2007-05-06 23:10:19.0 |
| contribution #454. I assigned to Martin but maybe Sean should take a look whether some problem with positions is not the culprit. |
| Sean edited on 2007-05-07 06:43:13.0 |
| I added a blank NoPosition case to the console reporter. This is still a bug though, since a position should be associated with the error. |
| Martin edited on 2007-05-17 14:59:55.0 |