From 134cd5e20030e558dfb75e07f5e3eb3211680e0c Mon Sep 17 00:00:00 2001 From: Jon Pretty Date: Wed, 24 May 2017 21:42:42 +0100 Subject: First cleanup step --- core/src/main/scala/generic.scala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/src/main/scala') diff --git a/core/src/main/scala/generic.scala b/core/src/main/scala/generic.scala index 3355e32..63f3d8f 100644 --- a/core/src/main/scala/generic.scala +++ b/core/src/main/scala/generic.scala @@ -18,6 +18,20 @@ class Macros(val c: whitebox.Context) { val scope = GlobalState.globalState.asInstanceOf[Map[Type, TermName]] + scope.get(genericType) match { + case Some(ref) => + q"$ref" + case None => + + val searchType = appliedType(typeConstructor, genericType) + println(s"${scope.keySet} vs $genericType") + println(s"inferring on $genericType") + try c.inferImplicitValue(searchType, false, false) catch { + case e: Exception => + go(genericType, typeConstructor/*, scope*/) + } + } + scope.get(genericType).map { nm => println("substituting "+nm) q"$nm" -- cgit v1.2.3