title: Why does compile fail with AssertionError after adding sbt-assembly to the build?
body: <p><em>(Updated information below)</em></p>
  
  <p>I am adding <code>sbt-assembly</code> to my build configuration for an existing project and now when I compile I get the following error, which I haven't been able to parse (with paths and names modified/abbreviated):</p>
  
  <pre><code>[error]      while compiling: .../src/.../utilities/Utilities.scala
  [error]         during phase: jvm
  [error]      library version: version 2.10.3
  [error]     compiler version: version 2.10.3
  [error]   reconstructed args: -classpath ...
  [error] 
  [error]   last tree to typer: TypeTree(trait ProjectActivityProperties)
  [error]               symbol: trait ProjectActivityProperties in package properties (flags: &lt;interface&gt; abstract &lt;java&gt; &lt;trait&gt;)
  [error]    symbol definition: abstract interface ProjectActivityProperties extends Object
  [error]                  tpe: com.project.model.elements.properties.ProjectActivityProperties
  [error]        symbol owners: trait ProjectActivityProperties -&gt; package properties
  [error]       context owners: constructor ProjectActivityProperties -&gt; trait ProjectActivityProperties -&gt; package properties
  [error] 
  [error] == Enclosing template or block ==
  [error] 
  [error] DefDef( // def &lt;init&gt;(): com.project.model.elements.properties.ProjectActivityProperties in trait ProjectActivityProperties
  [error]   &lt;method&gt; &lt;java&gt;
  [error]   "&lt;init&gt;"
  [error]   []
  [error]   List(Nil)
  [error]   &lt;tpt&gt; // tree.tpe=com.project.model.elements.properties.ProjectActivityProperties
  [error]   "_"
  [error] )
  [error] 
  [error] == Expanded type of tree ==
  [error] 
  [error] TypeRef(
  [error]   TypeSymbol(
  [error]     abstract interface ProjectActivityProperties extends Object
  [error]   )
  [error] )
  [error] 
  [error] uncaught exception during compilation: java.lang.AssertionError
  [trace] Stack trace suppressed: run last root/compile:compile for the full output.
  [error] (root/compile:compile) java.lang.AssertionError: assertion failed: List(object package$Opt, object package$Opt)
  </code></pre>
  
  <p>The interface causing the error is odd in that it inherits from another interface.  Removing this inheritance fixes the problem and I can successfully build a working assembly.  However, another interface exists that also inherits from a parent interface and does not cause a problem.</p>
  
  <p><strong>My question</strong> is why does this fix the problem (when other similar examples still exist), or what is really the underlying issue?</p>
  
  <p>I'm working with some legacy code and I would prefer not to modify the working code base just to change the build configuration.</p>
  
  <hr>
  
  <p><strong>Update</strong></p>
  
  <p>Although this was perviously very consistently reproducible, after trying different Scala versions and other configuration changes, it happens much less frequently.  The exception seems to occur while compiling, which would seem to indicate that this is an issue with the compiler (?)</p>
  
  <p>For completeness, the final output of <code>last root/compile:compile</code> is:</p>
  
  <pre><code>java.lang.AssertionError: assertion failed: List(object package$Opt, object package$Opt)
      at scala.reflect.internal.Symbols$Symbol.suchThat(Symbols.scala:1669)
      at scala.reflect.internal.Symbols$ClassSymbol.companionModule0(Symbols.scala:2979)
      at scala.reflect.internal.Symbols$ClassSymbol.companionModule(Symbols.scala:2982)
      at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genClass(GenASM.scala:1369)
      at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:119)
      at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583)
      at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557)
      at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553)
      at scala.tools.nsc.Global$Run.compile(Global.scala:1662)
      at xsbt.CachedCompiler0.run(CompilerInterface.scala:123)
      at xsbt.CachedCompiler0.run(CompilerInterface.scala:99)
      at xsbt.CompilerInterface.run(CompilerInterface.scala:27)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102)
      at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48)
      at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
      at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:98)
      at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:98)
      at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:98)
      at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:159)
      at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:97)
      at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:142)
      at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:86)
      at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:38)
      at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:36)
      at sbt.inc.Incremental$.cycle(Incremental.scala:73)
      at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:33)
      at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:32)
      at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:41)
      at sbt.inc.Incremental$.compile(Incremental.scala:32)
      at sbt.inc.IncrementalCompile$.apply(Compile.scala:26)
      at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:150)
      at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:70)
      at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:45)
      at sbt.Compiler$.apply(Compiler.scala:70)
      at sbt.Defaults$.sbt$Defaults$$compileTaskImpl(Defaults.scala:736)
      at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:730)
      at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:730)
      at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
      at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
      at sbt.std.Transform$$anon$4.work(System.scala:64)
      at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
      at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
      at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
      at sbt.Execute.work(Execute.scala:244)
      at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
      at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
      at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
      at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:744)
  [error] (root/compile:compile) java.lang.AssertionError: assertion failed: List(object package$Opt, object package$Opt)
  </code></pre>