[scala-tools] Option to restart incremental compiler

View: New views
1 Messages — Rating Filter:   Alert me  

[scala-tools] Option to restart incremental compiler

by Sciss-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hi,

how feasible would it be to have - at least for the 2.8 nightly - an  
option to restart the incremental compiler in the eclipse plug-in? i  
realize it crashes very quickly after launching eclipse, and then the  
incremental build is off, meaning that you need to call clean all the  
time (which takes a lot of time)... maybe all it needs is a menu-item  
that lets you explicitly restart the incremental compiler so you  
don't need to exit and relaunch eclipse?

another thing i have ATM is lots of errors of the form

scala.tools.nsc.FatalError: Companions 'class XYZ' and 'object XYZ'  
must be defined in same file.
        at scala.tools.nsc.symtab.Symbols$Symbol.isCoDefinedWith
(Symbols.scala:1107)
        at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$linkedClassOfModule
$1.apply(Symbols.scala:1118)
        at scala.tools.nsc.symtab.Symbols$Symbol$$anonfun$linkedClassOfModule
$1.apply(Symbols.scala:1118)
        at scala.tools.nsc.symtab.Symbols$Symbol.filter(Symbols.scala:953)
        at scala.tools.nsc.symtab.Symbols$Symbol.suchThat(Symbols.scala:957)
        at scala.tools.nsc.symtab.Symbols$Symbol.linkedClassOfModule
(Symbols.scala:1118)
        at scala.tools.nsc.symtab.Symbols$Symbol.linkedSym(Symbols.scala:1135)
        at scala.tools.nsc.typechecker.Namers$Namer.updatePosFlags
(Namers.scala:93)
        at scala.tools.nsc.typechecker.Namers$Namer.enterModuleSymbol
(Namers.scala:228)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:352)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSyntheticSym
(Namers.scala:436)
        at scala.tools.nsc.typechecker.Namers$Namer.ensureCompanionObject
(Namers.scala:286)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:336)
        at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms
$1.apply(Namers.scala:250)
        at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms
$1.apply(Namers.scala:249)
        at scala.collection.generic.LinearSequenceTemplate$class.foreach
(LinearSequenceTemplate.scala:81)
        at scala.collection.immutable.List.foreach(List.scala:26)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:249)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:331)
        at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms
$1.apply(Namers.scala:250)
        at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms
$1.apply(Namers.scala:249)
        at scala.collection.generic.LinearSequenceTemplate$class.foreach
(LinearSequenceTemplate.scala:81)
        at scala.collection.immutable.List.foreach(List.scala:26)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:249)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:331)
        at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms
$1.apply(Namers.scala:250)
        at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$enterSyms
$1.apply(Namers.scala:249)
        at scala.collection.generic.LinearSequenceTemplate$class.foreach
(LinearSequenceTemplate.scala:81)
        at scala.collection.immutable.List.foreach(List.scala:26)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSyms(Namers.scala:249)
        at scala.tools.nsc.typechecker.Namers$Namer.enterSym(Namers.scala:331)
        at scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply
(Analyzer.scala:34)
        at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:312)
        at scala.tools.nsc.Global$Run$$anonfun$compileLate$1.apply
(Global.scala:877)
        at scala.tools.nsc.Global$Run$$anonfun$compileLate$1.apply
(Global.scala:877)
        at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:102)
        at scala.tools.nsc.Global$Run.compileLate(Global.scala:877)
        at scala.tools.nsc.interactive.Global.parse(Global.scala:170)
        at scala.tools.nsc.interactive.Global$$anonfun$reload$1$$anonfun
$apply$1.apply(Global.scala:208)
        at scala.tools.nsc.interactive.Global$$anonfun$reload$1$$anonfun
$apply$1.apply(Global.scala:205)
        at scala.collection.generic.LinearSequenceTemplate$class.foreach
(LinearSequenceTemplate.scala:81)
        at scala.collection.immutable.List.foreach(List.scala:26)
        at scala.tools.nsc.interactive.Global$$anonfun$reload$1.apply
(Global.scala:205)
        at scala.tools.nsc.interactive.Global$$anonfun$reload$1.apply
(Global.scala:203)
        at scala.tools.nsc.interactive.Global.respond(Global.scala:194)
        at scala.tools.nsc.interactive.Global.reload(Global.scala:203)
        at scala.tools.nsc.interactive.CompilerControl$$anonfun$askReload
$1.apply(CompilerControl.scala:50)
        at scala.tools.nsc.interactive.CompilerControl$$anonfun$askReload
$1.apply(CompilerControl.scala:50)
        at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:98)
        at scala.tools.nsc.interactive.Global$$anon$2.run(Global.scala:120)

where XYZ is basically any kind of class i have, both case classes  
and regular classes (even if they don't have any companion object!)


thanks, -sciss-