我想问一下可以调用def宏的位置以及何时扩展它们?我想我们不能在适合的任何地方放置适当的生成AST? 例如,我想要这个:
(2,1) match {
case StandaloneMacros.permutations(1,2) => true ;
case (_,_) => false
}
在宏观扩张后成为这个
(2,1) match {
case (1,2) | (2,1) => true ;
case (_,_) => false
}
我的宏排列会生成替代元组。但是当我运行第一个片段时,我得到了
macro method permutations is not a case class, nor does it have an unapply/unapplySeq member
我还尝试使用unapply宏方法定义 Permutations 对象,但又出现了另一个错误:
scala.reflect.internal.FatalError: unexpected tree: class scala.reflect.internal.Trees$Alternative
那么:有可能实现吗?