Мне нужно получить AST для реализации лямбда-функции. И я застреваю, потому что reify работает над аргументом, а не по его значению.Обоснование реализации функции вместо ссылки
val x = (a: Int) => println("a")
val t = showRaw(reify(thevalueof x)) //something here should change
println(t)
должен напечатать:
Expr(Function(List(ValDef(Modifiers(PARAM), newTermName("a"), Ident(scala.Int), EmptyTree)), Apply(Select(Select(This(newTypeName("scala")), newTermName("Predef")), newTermName("println")), List(Literal(Constant("a"))))))
я должен там должен быть трюк с сращивания или около того, но я просто не могу управлять, чтобы сделать это.