2013-06-09 2 views
2

Я пытаюсь создать значение для объекта-компаньона на основе полей класса case.Доступ к сопутствующему объекту из класса case (или наоборот) с использованием макросов типа scala

Я хотел бы сделать что-то вроде этого:

case class A(
    val a: Int, 
    val b: String 
) extends MyTypeMacro 

Я хотел бы, чтобы это добавить, чтобы добавить значение к своему объекту компаньон ...

object A { 
    //Generate... 
    val c: B = //Code value derived from case class fields... 
} 

Поскольку объекты компаньонов и классы имеют доступ друг к другу, не должно Я могу выполнить это, обратившись к сопутствующему объекту из макроса типа класса case.

Также ... Я хотел бы добавить 'val c', задан ли объект A или нет.

ответ

0

К сожалению, это пока невозможно. Мы играем с чем-то подобным образом, но это очень ранняя стадия, поэтому я не могу сказать ничего окончательного.

+0

любые ссылки, эксперименты, вилки? – ZiglioUK

+0

не, извините. –

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