From 17cfdb350fa38454a76ed5370ac6f36c3a532d3e Mon Sep 17 00:00:00 2001 From: Jon Pretty Date: Thu, 25 May 2017 11:26:28 -0600 Subject: Progress with mutual recursion --- examples/src/main/scala/example.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'examples/src/main') diff --git a/examples/src/main/scala/example.scala b/examples/src/main/scala/example.scala index 7e9d80b..a031fbe 100644 --- a/examples/src/main/scala/example.scala +++ b/examples/src/main/scala/example.scala @@ -15,8 +15,14 @@ object Extractor extends Extractor_1 { implicit val intExtractor: Extractor[Int] = Extractor(_.toInt) implicit val stringExtractor: Extractor[String] = Extractor(identity) implicit val doubleExtractor: Extractor[Double] = Extractor(_.toDouble) + } -trait Extractor_1 { +trait Extractor_1 extends Extractor_2 { + implicit def listExtractor[T: Extractor]: Extractor[List[T]] = new Extractor[List[T]] { + def extract(source: String): List[T] = List(implicitly[Extractor[T]].extract(source)) + } +} +trait Extractor_2 { implicit def generic[T]: Extractor[T] = macro Macros.generic[T, Extractor[_]] } -- cgit v1.2.3