В этом документе:
http://docs.scala-lang.org/overviews/reflection/environment-universes-mirrors.html
Вселенная отражения Scala имеет 2 реализации: 1 для среды выполнения (в scala.reflect.runtime) и 1 для времени компиляции (в scala.reflect.macro).
Однако я могу получить доступ к среде выполнения только следующим образом:
scala.reflect.runtime.universe
Пакет юниверса времени компиляции не имеет конкретной реализации. Является ли реализация и возможность называть ее намеренно скрытой, а реализация жестко запрограммирована компилятором scala? Если это так, то в чем причина указывать юниверс перед использованием отражения Scala?
Большое спасибо за понимание.
def macroImpl(c: whitebox.Context)(arg: c.Tree) = { import c.universe._; /* other code */ }
- person Kolmar   schedule 05.06.2016