J'ai une macro de test simple qui utilise reify. Il provoque une erreur StackOverflowError lors de l'expansion de la macro.StackOverflowError lors de l'expansion de la macro de reify
def test() = macro testimpl
def testimpl(c:Context)():c.Expr[Any] = {
import c.universe._
val o = reify { // StackOverflowError here
object O
O
}
o
}
Pourquoi cela se produit-il? Cela peut-il être évité?
EDIT: C'est ce qui se passe avec M6. Je viens d'essayer avec M7 et maintenant il dit
restriction de mise en œuvre: ne peut pas réifier type Object {def(): O.type} (ClassInfoType)
donc qui répond à la question pourquoi, mais le la question demeure de savoir s'il existe un moyen de contourner ce problème.