factors out undoMacroExpansion into a standalone undoDesugarings utility
making it more modular
generalizes originalWhitebox
remembers sugared versions of originals
HasOriginal => DesugaringProtocol
overshadows Global's require
moves TypeTree ensugaring away from Host
better error reporting for undoDesugarings
ensugars inferred return types back into oblivion
ensugars inferred type arguments
ensugars partial functions
ensugars synthetic bounds on TypeBoundsTrees
replaces TypeTree() with EmptyTree as a sign of return type having been inferred
also print desugarings on failed tests
minor renaming
ensugars inferred implicit arguments into oblivion
ensugars ref trees back to their originals
undoDesugaring => ensugar
minor reordering
more exmaples of what can't be ensugared within scala.reflect