scala/scala — pull request #3235 by xeno-by (2013-12-07 22:14:15+00:00)
Title: new hooks in AnalyzerPlugins to enable macro experimentation

This pull requests introduces several new hooks in AnalyzerPlugins that would greatly assist me in experimenting with macros without hijacking namers and typers:
1) `pluginsEnterSym`, `pluginsEnsureCompanionObject` and `pluginsEnterStats` are all that it takes to support macro annotations.
2) `pluginsTypedMacroBody` and `pluginsMacroExpand` should be enough to play with Palladium without touching trunk.

I already have [a macro paradise branch](https://github.com/scalamacros/paradise/commit/4bb01031bb3c2d17d689d0ddf0a9c7ac71d87e2b#diff-0) that is based on this pull request, and one can observe that it brings significant code shrinkage as well as reduces the amount of hackery down to zero, ensuring full compatibility with 2.11 and lack of unexpected side-effects in projects that use paradise.

review @retronym