2017-02-20 23 views
1

Я довольно долго преследовал следующую проблему, и я надеюсь, что кто-то, у кого больше опыта в этом, чем я, может помочь мне решить эту проблему.Не удалось найти прокси-сервер для ... в Macro

В моем тестовом случае точная ошибка заключается в следующем:

java.lang.IllegalArgumentException: Не удалось найти прокси-сервер для валь пользователя: specs.BasicSpeC# пользователя в списке (пользователь значение, метод applyOrElse, , метод $ anonfun $ новый $ 97, стоимость fiveLetterNames, метод $ anonfun $ новые $ 90, метод $ anonfun $ новый $ 20, стоимость, класс BasicSpec, пакет данные, пакет) (currentOwner = значение fiveLetterNames)

испытание может можно найти здесь:

https://github.com/outr/reactify/blob/master/shared/src/test/scala/specs/BasicSpec.scala#L227

Это виновный Macro:

https://github.com/outr/reactify/blob/master/shared/src/main/scala/com/outr/reactify/Macros.scala#L72

Без дополнительной информации от ошибок я нахожусь в недоумении, как решить эту проблему. Любая помощь очень ценится.

+0

Вы решили эту проблему? У меня такая же ошибка компилятора. –

+0

@ EvgenyVeretennikov Я сделал, но так было и сейчас, я точно не помню, в чем проблема. Я думаю, что это связано с использованием ссылок, которые доступны только во время выполнения во время компиляции. Если вы поделитесь некоторым кодом, я был бы рад попробовать и помочь. – darkfrog

ответ

2

У меня была такая же проблема в моем проекте. Решение заключается не в том, чтобы использовать один и тот же «лямбда» * в макросах более одного раза.

"лямбда" заключается в следующем:

def macroSample[A, B](c: blackbox.Context) 
        (lambda: c.Expr[A => B] /* <- lambda */) = { ... } 

P.S. на самом деле я не могу увидеть ваш оригинальный код прямо сейчас. Это решение работает в моем случае

 Смежные вопросы

  • Нет связанных вопросов^_^