aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-05-24 21:42:42 +0100
committerJon Pretty <jon.pretty@propensive.com>2017-05-24 21:42:42 +0100
commit134cd5e20030e558dfb75e07f5e3eb3211680e0c (patch)
tree1f8f7d1f6fb89320612419b27219f5ab24d88285
parentb039a653e9e90530a76aef42df9215c151c65b67 (diff)
downloadmagnolia-134cd5e20030e558dfb75e07f5e3eb3211680e0c.tar.gz
magnolia-134cd5e20030e558dfb75e07f5e3eb3211680e0c.tar.bz2
magnolia-134cd5e20030e558dfb75e07f5e3eb3211680e0c.zip
First cleanup step
-rw-r--r--core/src/main/scala/generic.scala14
1 files changed, 14 insertions, 0 deletions
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"