get the annotated class and, if available, companion object
Inject an expression in the companion object of a class.
Inject an expression in the companion object of a class.
Create one if necessary
return field names and types so that only one field per given type is present For example if the fields are (server: ThreadPool, database: ThreadPool, port: Int) only (server: ThreadPool, port: Int) is returned
extract the type parameter of an annotation