2012-05-29 6 views
1

Я пытаюсь вызвать метод typeOfInstance() в следующем (простейшего) Код:AssertionError при использовании Scala 2,10-M3 отражение

import scala.reflect.mirror._ 

class Bar 

object Main extends App { 
    val bar = new Bar() 
    typeOfInstance(bar) 
} 

но Я получаю AssertionError при выполнении его:

java.lang.AssertionError: assertion failed: no symbol could be loaded from package annotation (scala equivalent is class com.hablapps.annotation.Bar) by name Bar 

Приведенный выше код работает нормально в REPL (с : мощность в режиме). Проблема возникает при запуске из SBT (с установкой Scala 2.10-M3). Кто-нибудь знает, что может произойти?

+0

Кстати, попытка использования одного и того же кода в Eclipse поднимается * Исключение в потоке «main» java.lang.UnsupportedOperationException: отражение Scala на этой платформе недоступно. * – jeslg

ответ

1

Это известная проблема с M3.

В этой предварительной версии Scala отражение работает только с простыми схемами загрузки (например, при запуске приложения с использованием старого старого java -cp <classpath> <name of the main class>). SBT немного запутаннее, и все в порядке.

Мы исправили это в 2.10.0-M4.

+0

Операции, я знал, что это было решено, но забыл обновить. Спасибо! – jeslg