A case class that represents the fields for a product type.
A case class that represents the fields for a product type.
the product type
the fields of the product type (computed from the arguments in the apply method)
the matched apply method
the matched unapply method
TRUE if all fields correspond to a public no arg member method with the same name and type in the product type (e.g. this is true for all case classes and tuple types)
Try to compute the product type fields for a type by finding the first unapply/apply method pair in the type's companion object with matching type signatures.
Try to compute the product type fields for a type by finding the first unapply/apply method pair in the type's companion object with matching type signatures. If no product type can be computed, Failure is returned with an error message.
type whose companion object should be searched for apply and unapply methods
if successful, Some(product type) otherwise None
Override to show debug messages
Helper trait that adds ProductType support to a blackbox context