0

I've got a library that generates mappings for case classes at compile-time and it works great, unless I pass in a generic type like: Foo[Bar] (see https://github.com/outr/fabric/blob/master/core/shared/src/main/scala-2/fabric/rw/RWMacros.scala#L32). When I call the Macro with caseClass[Foo[Baz]] the typeSignature represents Bar, not Baz. I can see in the tpe that that at compile-time it is Foo[Baz], but I can't figure out how to map from the Bar generic type to the Baz in the typeArgs list.

darkfrog
  • 1,053
  • 8
  • 29

1 Answers1

0

Thank you to @zygfryd on Gitter.im! He pointed me to asSeenFrom and I was able to update the code with val returnType = tpe.decl(name).typeSignature.asSeenFrom(tpe, tpe.typeSymbol.asClass) and now it resolves correctly to the generic type.

darkfrog
  • 1,053
  • 8
  • 29