This line corresponds to the code : -
val typedUnapply = UnApply(typedApplied, typedArgsForFormals(args, formals, mode)) setPos tree.pos setType extractedTp
The definition of Unapply can be found here. It is a case class which has a companion object. The companion object extends an Abstract class UnapplyExtractor
object UnApply extends UnApplyExtractor
But it doesn’t implement the abstract functions of UnapplyExtractor. So, how exactly is it working?