Skip to content
This repository was archived by the owner on Feb 20, 2019. It is now read-only.
This repository was archived by the owner on Feb 20, 2019. It is now read-only.

Compiler slain by -Ywarn-unused-import #370

@Astrac

Description

@Astrac

Given this minimal build.sbt:

lazy val proj = (project in file("."))
  .settings(
    scalaVersion := "2.11.7",
    scalacOptions ++= Seq("-Ywarn-unused-import"),
    libraryDependencies ++= Seq(
      "org.scala-lang.modules" %% "scala-pickling" % "0.10.1"
    )
  )

If I run the example on the REPL I get:

scala> import scala.pickling.Defaults._, scala.pickling.json._                                                                                                                                                                                                                                                                                                      [8/1055]
<console>:10: warning: Unused import
       import scala.pickling.Defaults._, scala.pickling.json._
                                      ^
<console>:10: warning: Unused import
       import scala.pickling.Defaults._, scala.pickling.json._
                                                             ^
import scala.pickling.Defaults._
import scala.pickling.json._

scala> case class Person(name: String, age: Int)
<console>:9: warning: Unused import
import scala.pickling.Defaults._
                               ^
<console>:12: warning: Unused import
import scala.pickling.json._
                           ^
defined class Person

scala> val pkl = Person("foo", 20).pickle
java.lang.ArrayIndexOutOfBoundsException: 339
        at scala.reflect.internal.util.InternalPositionImpl$class.calculateColumn(Position.scala:211)
        at scala.reflect.internal.util.InternalPositionImpl$class.column(Position.scala:167)
        at scala.reflect.internal.util.Position.column(Position.scala:12)
        at scala.reflect.internal.util.InternalPositionImpl$class.lineCaret(Position.scala:169)
        at scala.reflect.internal.util.Position.lineCaret(Position.scala:12)
        at scala.reflect.internal.util.InternalPositionImpl$class.indicator$1(Position.scala:186)
        at scala.reflect.internal.util.InternalPositionImpl$class.errorAt$1(Position.scala:187)
        at scala.reflect.internal.util.InternalPositionImpl$class.showError(Position.scala:192)
        at scala.reflect.internal.util.Position.showError(Position.scala:12)
        at scala.reflect.internal.util.Position$.formatMessage(Position.scala:42)
        at scala.tools.nsc.reporters.ConsoleReporter.printMessage(ConsoleReporter.scala:50)
        at scala.tools.nsc.interpreter.ReplReporter.print(ReplReporter.scala:50)
        at scala.tools.nsc.reporters.ConsoleReporter.display(ConsoleReporter.scala:69)
        at scala.tools.nsc.reporters.AbstractReporter.info0(AbstractReporter.scala:48)
        at scala.tools.nsc.reporters.AbstractReporter.info0(AbstractReporter.scala:16)
        at scala.reflect.internal.Reporter.warning(Reporting.scala:81)
        at scala.tools.nsc.interpreter.ReplReporter.scala$tools$nsc$interpreter$ReplReporter$$super$warning(ReplReporter.scala:32)
        at scala.tools.nsc.interpreter.ReplReporter$$anonfun$warning$1.apply(ReplReporter.scala:32)
        at scala.tools.nsc.interpreter.ReplReporter$$anonfun$warning$1.apply(ReplReporter.scala:32)
        at scala.tools.nsc.interpreter.ReplReporter.withoutTruncating(ReplReporter.scala:28)
        at scala.tools.nsc.interpreter.ReplReporter.warning(ReplReporter.scala:32)
        at scala.tools.nsc.typechecker.Contexts$class.warnUnusedImports(Contexts.scala:64)
        at scala.tools.nsc.interpreter.ReplGlobal$$anon$1.warnUnusedImports(ReplGlobal.scala:23)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:106)
        at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:440)
        at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:431)
        at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:440)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:94)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:93)
        at scala.collection.Iterator$class.foreach(Iterator.scala:742)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
        at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:93)
        at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1501)
        at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1486)
        at scala.tools.nsc.Global$Run.compileSources(Global.scala:1481)
        at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:434)
        at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:853)
        at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:811)
        at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:995)
        at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:990)
        at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:577)
        at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:565)
        at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:563)
        at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:802)
        at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:836)
        at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:694)
        at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:404)
        at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:424)
        at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:925)
        at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:911)
        at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:911)
        at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
        at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:911)
        at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:936)
        at xsbt.ConsoleInterface.run(ConsoleInterface.scala:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
        at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:76)
        at sbt.Console.sbt$Console$$console0$1(Console.scala:22)
        at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:23)
        at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
        at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
        at sbt.Logger$$anon$4.apply(Logger.scala:85)
        at sbt.TrapExit$App.run(TrapExit.scala:248)
        at java.lang.Thread.run(Thread.java:745)

That entry seems to have slain the compiler.  Shall I replay
your session? I can re-run each line except the last one.
[y/n]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions