0

我有一个库,可以在编译时为案例类生成映射,它工作得很好,除非我传入一个通用类型,比如:(Foo[Bar]参见https://github.com/outr/fabric/blob/master/core/共享/src/main/scala-2/fabric/rw/RWMacros.scala#L32)。caseClass[Foo[Baz]]当我用typeSignature代表调用宏时Bar,不是Baz。我可以tpe在编译时看到它Foo[Baz],但我不知道如何从Bar泛型类型映射到Baz列表中的typeArgs

4

1 回答 1

0

感谢 Gitter.im 上的@zygfryd!他向我指出asSeenFrom,我能够更新代码,val returnType = tpe.decl(name).typeSignature.asSeenFrom(tpe, tpe.typeSymbol.asClass)现在它可以正确解析为泛型类型。

于 2021-07-20T15:20:41.787 回答