Skip to content

The return value of Symbol.signature #17285

Open
@cacapouh

Description

@cacapouh

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))

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions