I am unable to rewrite many of my own macro annotations as compiler plugins because post-namer, pre-typer compiler plugins do not have a reliable mechanism for identifying the correct annotation.
I’d be delighted to rewrite as a compiler plugin if this could be addressed (they work much better in ensime and scala-ide for a start!)
In addition, I often require the parameters to my annotations to be resolved to FQNs. Ideally Symbols (it might be nice to inspect the target symbol, coming from a 3rd party jar), but FQNs should be enough for my immediate purposes. Consider for example the “deriving” macro that takes a list of companions of typeclasses to derive… we need access to the FQNs of these typeclasses, not just the raw source names.
BTW, a thing that would be awesome here is if it was possible to have an annotation on a sealed trait and be able to generate code on all the subtypes in the compilation unit… and fail if the user does anything funky (basically only allow final case classes). That would be a really killer feature for stalactite.