scala准引号将Tree转换为AppliedType



我想推断AppliedType的隐式值,这是我所做的

val valueType = accessorTree.returnType
val encoderType = tq"DatumEncoder[$valueType]" // returns a Tree
val encoder = c.inferImplicitValue(encoderType) // require a Type

但是tq返回一个Tree

如何将其转换为类型

此链接包含tq类型插补器的详细响应。

你可以直接输入:encoderType.tpe

或者你可以:

import reflect.runtime.currentMirror 
import tools.reflect.ToolBox 
val toolbox = currentMirror.mkToolBox()
def typecheckType(tree: Tree): Type = toolbox.typecheck(tree, toolbox.TYPEmode).tpe
typecheckType(encoderType)

相关内容

  • 没有找到相关文章

最新更新