Benoit Guigal
Benoit Guigal

Reputation: 858

scala sbt strange compilation error

My scala project uses sbt-extra with sbt.version 0.11.2 and scala version 2.9.1. When I try compiling my project (./sbt compile) I get a strange java.util.NoSuchElementException: head of empty listwith the following stack trace :

at scala.collection.immutable.Nil$.head(List.scala:371)
at scala.collection.immutable.Nil$.head(List.scala:368)
at scala.tools.nsc.symtab.Types$class.map2Conserve(Types.scala:4980)
at scala.tools.nsc.symtab.SymbolTable.map2Conserve(SymbolTable.scala:13)
at scala.tools.nsc.symtab.Types$class.map2Conserve(Types.scala:4981)
at scala.tools.nsc.symtab.SymbolTable.map2Conserve(SymbolTable.scala:13)
at scala.tools.nsc.symtab.Types$TypeMap.mapOverArgs(Types.scala:3207)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3114)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3522)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3389)
at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:3130)
at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3522)
at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:546)
at scala.tools.nsc.symtab.Types$Type.memberInfo(Types.scala:560)
at xsbt.API.defDef(API.scala:182)
at xsbt.API.xsbt$API$$definition(API.scala:258)
at xsbt.API$$anonfun$xsbt$API$$processDefinitions$1.apply(API.scala:244)
at xsbt.API$$anonfun$xsbt$API$$processDefinitions$1.apply(API.scala:244)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:200)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
at scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:38)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:200)
at scala.collection.mutable.ArrayOps.flatMap(ArrayOps.scala:38)
at xsbt.API.xsbt$API$$processDefinitions(API.scala:244)
at xsbt.API$$anonfun$mkStructure$3.apply(API.scala:242)
at xsbt.API$$anonfun$mkStructure$3.apply(API.scala:242)
at xsbt.Message$$anon$1.apply(Message.scala:8)
at xsbti.SafeLazy$$anonfun$apply$1.apply(SafeLazy.scala:8)
at xsbti.SafeLazy$Impl._t(SafeLazy.scala:20)
at xsbti.SafeLazy$Impl.get(SafeLazy.scala:24)
at xsbt.API$$anonfun$xsbt$API$$forceStructures$1.apply(API.scala:94)
at xsbt.API$$anonfun$xsbt$API$$forceStructures$1.apply(API.scala:94)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at xsbt.API.xsbt$API$$forceStructures(API.scala:94)
at xsbt.API$ApiPhase.processScalaUnit(API.scala:46)
at xsbt.API$ApiPhase.processUnit(API.scala:37)
at xsbt.API$ApiPhase$$anonfun$run$1.apply(API.scala:33)
at xsbt.API$ApiPhase$$anonfun$run$1.apply(API.scala:33)
at scala.collection.Iterator$class.foreach(Iterator.scala:660)
at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:316)
at xsbt.API$ApiPhase.run(API.scala:33)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:953)
at scala.tools.nsc.Global$Run.compile(Global.scala:1038)
at xsbt.CompilerInterface.run(CompilerInterface.scala:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:57)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:29)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:25)
at sbt.AggressiveCompile$$anonfun$5.compileScala$1(AggressiveCompile.scala:67)
at sbt.AggressiveCompile$$anonfun$5.apply(AggressiveCompile.scala:79)
at sbt.AggressiveCompile$$anonfun$5.apply(AggressiveCompile.scala:57)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:21)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:19)
at sbt.inc.Incremental$.cycle(Incremental.scala:33)
at sbt.inc.Incremental$.compile(Incremental.scala:20)
at sbt.inc.IncrementalCompile$.apply(Compile.scala:17)
at sbt.AggressiveCompile.compile2(AggressiveCompile.scala:87)
at sbt.AggressiveCompile.compile1(AggressiveCompile.scala:41)
at sbt.AggressiveCompile.apply(AggressiveCompile.scala:28)
at sbt.Compiler$.apply(Compiler.scala:107)
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:479)
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:479)
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:473)
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:473)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:41)
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$11.apply(Structure.scala:295)
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$11.apply(Structure.scala:295)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$5.work(System.scala:67)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:221)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:221)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
at sbt.Execute.work(Execute.scala:227)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:221)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:221)
at sbt.CompletionService$$anon$1$$anon$2.call(CompletionService.scala:26)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)

It is not mentioning any line of my code and this is a Runtime exception so I guess something is going wrong with sbt compile task itself but I can't figure out what.

Thanks in advance,

EDIT

Same error with scala 2.9.2 and sbt 0.12.2. I tried cleaning but it did not work.

Upvotes: 1

Views: 1230

Answers (1)

Benoit Guigal
Benoit Guigal

Reputation: 858

The error was probably a bug of the compiler that was fix in scala 2.10.

It may be SI-5044 or SI-5862.

I upgraded to scala 2.10.1 and it works fine.

Upvotes: 1

Related Questions