Scala Programming Language
  1. Scala Programming Language
  2. SI-5878

Circular dependency of AnyVal classes crashes compiler

    Details

      Description

      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)
      

        Activity

        Hide
        Simon Ochsenreither added a comment -

        Fixed in daf0953

        Show
        Simon Ochsenreither added a comment - Fixed in daf0953

          People

          • Assignee:
            Martin Odersky
            Reporter:
            Simon Ochsenreither
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development