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

Circular dependency of AnyVal classes crashes compiler #5878

Closed
scabug opened this issue Jun 3, 2012 · 2 comments
Closed

Circular dependency of AnyVal classes crashes compiler #5878

scabug opened this issue Jun 3, 2012 · 2 comments

Comments

@scabug
Copy link

@scabug scabug commented Jun 3, 2012

case class Foo(x: Bar) extends AnyVal
case class Bar(x: Foo) extends AnyVal

results in

ReplGlobal.abort: EmptyScope.enter
error: EmptyScope.enter
exception when typing $this.$asInstanceOf[Foo$unboxed]().$asInstanceOf[Bar$unboxed]().$eq$eq
exception when typing $this.$asInstanceOf[Foo$unboxed]().$asInstanceOf[Bar$unboxed]().$eq$eq(Foo$1.$asInstanceOf[Foo$unboxed]().$asInstanceOf[Bar$unboxed]())

     while compiling: <console>
        during phase: posterasure
     library version: version 2.10.0-20120530-022829-8d38079ab4
    compiler version: version 2.10.0-20120530-022829-8d38079ab4
  reconstructed args: 

  last tree to typer: TypeTree
              symbol: <none> (flags: )
   symbol definition: <none>
                 tpe: Foo$unboxed
       symbol owners: 
      context owners: method extension=uals -> object Foo -> object $iw -> object $iw -> object $read -> package $line4

== Enclosing template or block ==

Apply(
  $this.$asInstanceOf[Foo$unboxed]().$asInstanceOf[Bar$unboxed]()."$eq$eq"
  Apply( // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=Bar$unboxed
    TypeApply( // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=()Bar$unboxed
      Foo$1.$asInstanceOf[Foo$unboxed]()."$asInstanceOf" // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=[T0 >: ? <: ?]()T0
      <tpt> // tree.tpe=Bar$unboxed
    )
    Nil
  )
)

== Expanded type of tree ==

Foo$unboxed

unhandled exception while transforming <console>
error: 
     while compiling: <console>
        during phase: posterasure
     library version: version 2.10.0-20120530-022829-8d38079ab4
    compiler version: version 2.10.0-20120530-022829-8d38079ab4
  reconstructed args: 

  last tree to typer: TypeTree
              symbol: <none> (flags: )
   symbol definition: <none>
                 tpe: Foo$unboxed
       symbol owners: 
      context owners: method extension=uals -> object Foo -> object $iw -> object $iw -> object $read -> package $line4

== Enclosing template or block ==

Apply(
  $this.$asInstanceOf[Foo$unboxed]().$asInstanceOf[Bar$unboxed]()."$eq$eq"
  Apply( // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=Bar$unboxed
    TypeApply( // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=()Bar$unboxed
      Foo$1.$asInstanceOf[Foo$unboxed]()."$asInstanceOf" // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=[T0 >: ? <: ?]()T0
      <tpt> // tree.tpe=Bar$unboxed
    )
    Nil
  )
)

== Expanded type of tree ==

Foo$unboxed

uncaught exception during compilation: scala.reflect.internal.FatalError
scala.reflect.internal.FatalError: 
     while compiling: <console>
        during phase: posterasure
     library version: version 2.10.0-20120530-022829-8d38079ab4
    compiler version: version 2.10.0-20120530-022829-8d38079ab4
  reconstructed args: 

  last tree to typer: TypeTree
              symbol: <none> (flags: )
   symbol definition: <none>
                 tpe: Foo$unboxed
       symbol owners: 
      context owners: method extension=uals -> object Foo -> object $iw -> object $iw -> object $read -> package $line4

== Enclosing template or block ==

Apply(
  $this.$asInstanceOf[Foo$unboxed]().$asInstanceOf[Bar$unboxed]()."$eq$eq"
  Apply( // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=Bar$unboxed
    TypeApply( // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=()Bar$unboxed
      Foo$1.$asInstanceOf[Foo$unboxed]()."$asInstanceOf" // final def $asInstanceOf[T0 >: ? <: ?](): T0 in class Object, tree.tpe=[T0 >: ? <: ?]()T0
      <tpt> // tree.tpe=Bar$unboxed
    )
    Nil
  )
)

== Expanded type of tree ==

Foo$unboxed

EmptyScope.enter
	at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:43)
	at scala.tools.nsc.Global.abort(Global.scala:228)
	at scala.tools.nsc.interpreter.IMain$$anon$1.scala$tools$nsc$interpreter$ReplGlobal$$super$abort(IMain.scala:277)
	at scala.tools.nsc.interpreter.ReplGlobal$class.abort(ReplGlobal.scala:21)
	at scala.tools.nsc.interpreter.IMain$$anon$1.abort(IMain.scala:277)
	at scala.reflect.internal.Scopes$EmptyScope$.enter(Scopes.scala:346)
	at scala.reflect.internal.Scopes$Scope.enter(Scopes.scala:116)
	at scala.reflect.internal.Symbols$Symbol.setInfoAndEnter(Symbols.scala:1274)
	at scala.tools.nsc.typechecker.Implicits$class.memberWildcardType(Implicits.scala:223)
	at scala.tools.nsc.transform.Erasure.memberWildcardType(Erasure.scala:14)
	at scala.tools.nsc.typechecker.Implicits$HasMember$$anonfun$apply$2.apply(Implicits.scala:233)
	at scala.tools.nsc.typechecker.Implicits$HasMember$$anonfun$apply$2.apply(Implicits.scala:233)
	at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:189)
	at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:91)
	at scala.tools.nsc.typechecker.Implicits$HasMember$.apply(Implicits.scala:233)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$33.apply(Typers.scala:1315)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$33.apply(Typers.scala:1315)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$silent$2.apply(Typers.scala:730)
	at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:729)
	at scala.tools.nsc.typechecker.Typers$Typer.adaptToMemberWithArgs(Typers.scala:1315)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$89.apply(Typers.scala:4271)
	at scala.tools.nsc.typechecker.Typers$Typer.typedSelect$1(Typers.scala:4266)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4903)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:721)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5016)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$85.apply(Typers.scala:4116)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$85.apply(Typers.scala:4116)
	at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:721)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4116)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4842)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:721)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5016)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5074)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:57)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1475)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:1549)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:1549)
	at scala.collection.immutable.List.loop$1(List.scala:163)
	at scala.collection.immutable.List.mapConserve(List.scala:179)
	at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:1549)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1513)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:1461)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:1459)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.atOwner(TypingTransformers.scala:19)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1458)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1567)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1565)
	at scala.collection.immutable.List.loop$1(List.scala:163)
	at scala.collection.immutable.List.mapConserve(List.scala:179)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:1565)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1473)
	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.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:1551)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1445)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1444)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.atOwner(TypingTransformers.scala:19)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1443)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1567)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1565)
	at scala.collection.immutable.List.loop$1(List.scala:163)
	at scala.collection.immutable.List.mapConserve(List.scala:179)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:1565)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1473)
	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.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:1551)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1445)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1444)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.atOwner(TypingTransformers.scala:19)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1443)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1567)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1565)
	at scala.collection.immutable.List.loop$1(List.scala:163)
	at scala.collection.immutable.List.mapConserve(List.scala:179)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:1565)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1473)
	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.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:1551)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1445)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1444)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.atOwner(TypingTransformers.scala:19)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1443)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1567)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1565)
	at scala.collection.immutable.List.loop$1(List.scala:163)
	at scala.collection.immutable.List.mapConserve(List.scala:179)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:1565)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1473)
	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.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:1551)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1445)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:1444)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.atOwner(TypingTransformers.scala:19)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1443)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
	at scala.tools.nsc.transform.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1567)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$2.apply(Trees.scala:1565)
	at scala.collection.immutable.List.loop$1(List.scala:163)
	at scala.collection.immutable.List.mapConserve(List.scala:179)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:1565)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:1439)
	at scala.reflect.api.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:1439)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.atOwner(TypingTransformers.scala:19)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:1438)
	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.api.Trees$Transformer.atOwner(Trees.scala:1574)
	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.PostErasure$PostErasureTransformer.transform(PostErasure.scala:34)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:226)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:434)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:401)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:401)
	at scala.collection.Iterator$class.foreach(Iterator.scala:724)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1152)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:401)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1464)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1444)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1438)
	at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:445)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:811)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:769)
	at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:945)
	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:940)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:614)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:579)
	at scala.tools.nsc.interpreter.ILoop.pasteCommand(ILoop.scala:708)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$standardCommands$8.apply(ILoop.scala:261)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$standardCommands$8.apply(ILoop.scala:261)
	at scala.tools.nsc.interpreter.LoopCommands$LoopCommand$$anonfun$nullary$1.apply(LoopCommands.scala:65)
	at scala.tools.nsc.interpreter.LoopCommands$LoopCommand$$anonfun$nullary$1.apply(LoopCommands.scala:65)
	at scala.tools.nsc.interpreter.LoopCommands$NullaryCmd.apply(LoopCommands.scala:76)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:692)
	at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:561)
	at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:568)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:571)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:855)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:817)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:817)
	at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:134)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:817)
	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:79)
	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92)
	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101)
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

That entry seems to have slain the compiler.  Shall I replay
your session? I can re-run each line except the last one.

It works without value classes:

case class Foo(x: Bar)
case class Bar(x: Foo)
@scabug

This comment has been minimized.

Copy link
Author

@scabug scabug commented Jun 3, 2012

Imported From: https://issues.scala-lang.org/browse/SI-5878?orig=1
Reporter: @soc
Affected Versions: 2.10.0

@scabug

This comment has been minimized.

Copy link
Author

@scabug scabug commented Jul 30, 2012

@soc said:
Fixed in daf0953

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

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.