Question

I wan to infer an implicit value of an AppliedType, here's what I've done

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

But the tq returns a Tree

How Can I convert it to a Type

Était-ce utile?

La solution

This link contains detailed response for tq types interpolator.

You could just do: encoderType.tpe

Or you could:

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top