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

case class definition with more than 22 arguments crashes compiler in makeTupleTerm #7098

Closed
scabug opened this issue Feb 7, 2013 · 3 comments
Assignees
Milestone

Comments

@scabug
Copy link

scabug commented Feb 7, 2013

scala> case class Foo(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int, h: Int, i: Int, j: Int, k: Int, l: Int, m: Int, n: Int, o: Int, p: Int, q: Int, r: Int, s: Int, t: Int, u: Int, v: Int, w: Int, x: Int, y: Int, z: Int)

In 2.10:

<console>:7: error: Implementation restriction: case classes cannot have more than 22 parameters.
       case class Foo(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int, h: Int, i: Int, j: Int, k: Int, l: Int, m: Int, n: Int, o: Int, p: Int, q: Int, r: Int, s: Int, t: Int, u: Int, v: Int, w: Int, x: Int, y: Int, z: Int)
                  ^
error: 
     while compiling: <console>
        during phase: typer
     library version: version 2.10.0
    compiler version: version 2.10.0
  reconstructed args: 

  last tree to typer: Literal(Constant(()))
              symbol: null
   symbol definition: null
                 tpe: Unit
       symbol owners: 
      context owners: object Foo -> object $iw -> object $iw -> object $read -> package $line5

== Enclosing template or block ==

Template(
  runtime.this.AbstractFunction22[Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Foo] // parents
  ValDef(
    private
    "_"
    <tpt>
    <empty>
  )
  // 2 statements
  DefDef( // def <init>: <?> in object Foo
    <method>
    "<init>"
    []
    List(Nil)
    <tpt>
    Block(
      Apply(
        super."<init>"
        Nil
      )
      ()
    )
  )
  DefDef( // final override def toString: <?> in object Foo
    <method> final override
    "toString"
    []
    List(Nil)
    <tpt>
    "Foo"
  )
)

== Expanded type of tree ==

TypeRef(TypeSymbol(final abstract class Unit extends AnyVal))

uncaught exception during compilation: java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException: 26
	at scala.tools.nsc.ast.TreeDSL$CODE$.makeTupleTerm(TreeDSL.scala:313)
	at scala.tools.nsc.ast.TreeDSL$CODE$.SOME(TreeDSL.scala:302)
	at scala.tools.nsc.typechecker.Unapplies$class.scala$tools$nsc$typechecker$Unapplies$$caseClassUnapplyReturnValue(Unapplies.scala:101)
	at scala.tools.nsc.typechecker.Unapplies$$anonfun$3.apply(Unapplies.scala:160)
	at scala.tools.nsc.typechecker.Unapplies$$anonfun$3.apply(Unapplies.scala:160)
	at scala.tools.nsc.typechecker.Unapplies$class.caseModuleUnapplyMeth(Unapplies.scala:160)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1.caseModuleUnapplyMeth(ReplGlobal.scala:24)
	at scala.tools.nsc.typechecker.Namers$Namer.addApplyUnapply(Namers.scala:1242)
	at scala.tools.nsc.typechecker.Namers$Namer.templateSig(Namers.scala:872)
	at scala.tools.nsc.typechecker.Namers$Namer.getSig$1(Namers.scala:1300)
	at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1347)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply$mcV$sp(Namers.scala:709)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:708)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:708)
	at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$logAndValidate(Namers.scala:1385)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:708)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:707)
	at scala.tools.nsc.typechecker.Namers$$anon$1.completeImpl(Namers.scala:1496)
	at scala.tools.nsc.typechecker.Namers$LockingTypeCompleter$class.complete(Namers.scala:1504)
	at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1494)
	at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1217)
	at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1352)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5119)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5458)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:29)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2770)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1$$anonfun$apply$27.apply(Typers.scala:2828)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1.apply(Typers.scala:2827)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1.apply(Typers.scala:2826)
	at scala.reflect.internal.Scopes$Scope.foreach(Scopes.scala:315)
	at scala.tools.nsc.typechecker.Typers$Typer.addSynthetics$1(Typers.scala:2826)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2874)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1862)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1769)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5401)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5458)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:29)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2770)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$55.apply(Typers.scala:2870)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$55.apply(Typers.scala:2870)
	at scala.collection.immutable.List.loop$1(List.scala:164)
	at scala.collection.immutable.List.mapConserve(List.scala:180)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2870)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1862)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1769)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5401)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5458)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:29)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2770)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$55.apply(Typers.scala:2870)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$55.apply(Typers.scala:2870)
	at scala.collection.immutable.List.loop$1(List.scala:164)
	at scala.collection.immutable.List.mapConserve(List.scala:180)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2870)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1862)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1769)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5401)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5458)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:29)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2770)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$55.apply(Typers.scala:2870)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$55.apply(Typers.scala:2870)
	at scala.collection.immutable.List.loop$1(List.scala:164)
	at scala.collection.immutable.List.mapConserve(List.scala:180)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2870)
	at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5127)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5404)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5458)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:29)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5509)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:98)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:461)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.collection.Iterator$class.foreach(Iterator.scala:727)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1156)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:90)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1574)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1548)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1544)
	at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:425)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:798)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:758)
	at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:933)
	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:928)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:600)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:565)
	at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:745)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:790)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:702)
	at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:566)
	at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:573)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:576)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:867)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:822)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:822)
	at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:822)
	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:83)
	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:96)
	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:105)
	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.

Similar in 2.11:

<console>:7: error: Implementation restriction: case classes cannot have more than 22 parameters.
       case class Foo(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int, g: Int, h: Int, i: Int, j: Int, k: Int, l: Int, m: Int, n: Int, o: Int, p: Int, q: Int, r: Int, s: Int, t: Int, u: Int, v: Int, w: Int, x: Int, y: Int, z: Int)
                  ^
error: 
     while compiling: <console>
        during phase: typer
     library version: version 2.11.0-20130206-121550-5545f35730
    compiler version: version 2.11.0-20130206-121550-5545f35730
  reconstructed args: 

  last tree to typer: Ident(Foo)
              symbol: <none> (flags: )
   symbol definition: <none>
       symbol owners: 
      context owners: object Foo -> object $iw -> object $iw -> object $read -> package $line3

== Enclosing template or block ==

Template(
  runtime.this.AbstractFunction22[Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Foo] // parents
  ValDef(
    private
    "_"
    <tpt>
    <empty>
  )
  // 2 statements
  DefDef( // def <init>: <?> in object Foo
    <method>
    "<init>"
    []
    List(Nil)
    <tpt>
    Block(
      Apply(
        super."<init>"
        Nil
      )
      ()
    )
  )
  DefDef( // final override def toString: <?> in object Foo
    <method> final override <synthetic>
    "toString"
    []
    List(Nil)
    <tpt>
    "Foo"
  )
)

uncaught exception during compilation: ArrayIndexOutOfBoundsException("26") @ scala.tools.nsc.ast.TreeDSL$CODE$.makeTupleTerm(TreeDSL.scala:265)
java.lang.ArrayIndexOutOfBoundsException: 26
	at scala.tools.nsc.ast.TreeDSL$CODE$.makeTupleTerm(TreeDSL.scala:265)
	at scala.tools.nsc.ast.TreeDSL$CODE$.SOME(TreeDSL.scala:254)
	at scala.tools.nsc.typechecker.Unapplies$class.scala$tools$nsc$typechecker$Unapplies$$caseClassUnapplyReturnValue(Unapplies.scala:89)
	at scala.tools.nsc.typechecker.Unapplies$$anonfun$3.apply(Unapplies.scala:148)
	at scala.tools.nsc.typechecker.Unapplies$$anonfun$3.apply(Unapplies.scala:148)
	at scala.tools.nsc.typechecker.Unapplies$class.caseModuleUnapplyMeth(Unapplies.scala:148)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1.caseModuleUnapplyMeth(ReplGlobal.scala:23)
	at scala.tools.nsc.typechecker.Namers$Namer.addApplyUnapply(Namers.scala:1403)
	at scala.tools.nsc.typechecker.Namers$Namer.templateSig(Namers.scala:902)
	at scala.tools.nsc.typechecker.Namers$Namer.moduleSig(Namers.scala:960)
	at scala.tools.nsc.typechecker.Namers$Namer.getSig$1(Namers.scala:1457)
	at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1472)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply$mcV$sp(Namers.scala:750)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:749)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:749)
	at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$logAndValidate(Namers.scala:1499)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:749)
	at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:741)
	at scala.tools.nsc.typechecker.Namers$$anon$1.completeImpl(Namers.scala:1614)
	at scala.tools.nsc.typechecker.Namers$LockingTypeCompleter$class.complete(Namers.scala:1622)
	at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1612)
	at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1260)
	at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1396)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4919)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5240)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:28)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2792)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$2$$anonfun$apply$32.apply(Typers.scala:2854)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$2.apply(Typers.scala:2853)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$2.apply(Typers.scala:2852)
	at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:775)
	at scala.reflect.internal.Scopes$Scope.foreach(Scopes.scala:333)
	at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:774)
	at scala.tools.nsc.typechecker.Typers$Typer.addSynthetics$1(Typers.scala:2852)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2900)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1953)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1826)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5188)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5240)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:28)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2792)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$61.apply(Typers.scala:2896)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$61.apply(Typers.scala:2896)
	at scala.collection.immutable.List.loop$1(List.scala:164)
	at scala.collection.immutable.List.mapConserve(List.scala:180)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2896)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1953)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1826)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5188)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5240)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:28)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2792)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$61.apply(Typers.scala:2896)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$61.apply(Typers.scala:2896)
	at scala.collection.immutable.List.loop$1(List.scala:164)
	at scala.collection.immutable.List.mapConserve(List.scala:180)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2896)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1953)
	at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1826)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5188)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5240)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:28)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:2792)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$61.apply(Typers.scala:2896)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$61.apply(Typers.scala:2896)
	at scala.collection.immutable.List.loop$1(List.scala:164)
	at scala.collection.immutable.List.mapConserve(List.scala:180)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2896)
	at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:4925)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5191)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5240)
	at scala.tools.nsc.interpreter.ReplGlobal$$anon$1$$anon$2.typed(ReplGlobal.scala:28)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5299)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:99)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:409)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:91)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:90)
	at scala.collection.Iterator$class.foreach(Iterator.scala:725)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1156)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:90)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1504)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1479)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1475)
	at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:410)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:748)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:708)
	at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:852)
	at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:847)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:573)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:538)
	at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:567)
	at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:612)
	at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:524)
	at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:380)
	at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:397)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:680)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:666)
	at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:666)
	at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:95)
	at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:666)
	at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:81)
	at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:94)
	at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
	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 doesn't crash in 2.9.2.

@scabug
Copy link
Author

scabug commented Feb 7, 2013

Imported From: https://issues.scala-lang.org/browse/SI-7098?orig=1
Reporter: @soc
Affected Versions: 2.10.0, 2.11.0-M1
See #7324, #7099, #7296

@scabug
Copy link
Author

scabug commented Apr 3, 2013

@retronym said:
This is tested and fixed in retronym/scala@ad79d74, which is now merged to master.

That was the first of the two commits in scala/scala#2305

@scabug scabug closed this as completed Apr 3, 2013
@scabug
Copy link
Author

scabug commented Apr 3, 2013

@soc said:
Just created a related bug, #7324 (and assigned it to you because I assumed you're still familiar with the code involved).

Would it make sense to backport this issue and #7324 to 2.10.x too?

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