Open
Description
Compiler version
3.2.2
Minimized code
object Lib {
import scala.quoted.*
inline def m[T] = ${impl[T]}
def impl[T](using Quotes, Type[T]) = {
import quotes.reflect.*
val signatures = TypeRepr.of[T].typeSymbol.declarations.map { declaration =>
(declaration.name, declaration.signature.toString)
}.mkString("\n")
Expr(signatures)
}
}
object Client extends App {
trait Repository {
def find: Int
def findBy(id: Int): String
}
println(Lib.m[Repository])
}
Output
(<init>,Signature(List(),Client$.Repository))
(find,Signature(List(),))
(findBy,Signature(List(scala.Int),java.lang.String))
Expectation
(<init>,Signature(List(),Client$.Repository))
(find,Signature(List(),scala.Int))
(findBy,Signature(List(scala.Int),java.lang.String))