Boxer: a demo scalac plugin, embedded in your SBT project.
Ever wish you could inject some extra analysis into the compiler pipeline for your project? You could write a compiler plugin, package, distribute it, and depend on it, but the activation energy for that is pretty high.
Boxer shows you how to embed a custom compiler plugin
directly into a sub-project of your SBT project. With this
in place, you can edit the plugin, run compile, and immediately
see the results in the context of your project.
The Scala version used is 2.12.x, but the same code also works in 2.11.x.
[info] Compiling 1 Scala source to /Users/jason/code/boxer/plugin/target/scala-2.12/classes... [info] Packaging /Users/jason/code/boxer/plugin/target/scala-2.12/boxer_2.12-0.1-SNAPSHOT.jar ... [info] Done packaging. [info] Compiling 1 Scala source to /Users/jason/code/boxer/main/target/scala-2.12/classes... [warn] /Users/jason/code/boxer/main/src/main/scala/demo/Demo.scala:8: Value class `Meter` instantiated! [warn] println(m2) [warn] ^ [warn] one warning found