aboutsummaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-06-10 16:29:06 +0200
committerJon Pretty <jon.pretty@propensive.com>2017-06-10 16:29:06 +0200
commitb56855910df8f8a2bf4f00d3de0bbd8b0afc14ac (patch)
tree0aa67206b74b024957ea5f63656ca75d3e2e56b3 /core/src/main
parent756d8350567c8993396d21b8d0c82902812321be (diff)
downloadmagnolia-b56855910df8f8a2bf4f00d3de0bbd8b0afc14ac.tar.gz
magnolia-b56855910df8f8a2bf4f00d3de0bbd8b0afc14ac.tar.bz2
magnolia-b56855910df8f8a2bf4f00d3de0bbd8b0afc14ac.zip
More cleanup
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/scala/generic.scala14
1 files changed, 4 insertions, 10 deletions
diff --git a/core/src/main/scala/generic.scala b/core/src/main/scala/generic.scala
index 5f60ff2..8ba4fd4 100644
--- a/core/src/main/scala/generic.scala
+++ b/core/src/main/scala/generic.scala
@@ -103,12 +103,10 @@ abstract class GenericMacro(whiteboxContext: whitebox.Context) {
typeConstructor: c.universe.Type,
myName: c.universe.TermName): c.Tree = {
- //log(c)(s"getImplicit1($genericType)")
- GlobalMutableState.find(c)(genericType).map { nm =>
- val str = nm.encodedName.toString
+ GlobalMutableState.find(c)(genericType).map { methodName =>
+ val methodAsString = methodName.encodedName.toString
val searchType = appliedType(typeConstructor, genericType)
- q"$str.asInstanceOf[${searchType}]"
- q"_root_.magnolia.Lazy[$searchType]($str)"
+ q"_root_.magnolia.Lazy[$searchType]($methodAsString)"
}.orElse {
val searchType = appliedType(typeConstructor, genericType)
if(GlobalMutableState.find(c)(genericType).isEmpty) {
@@ -127,9 +125,7 @@ abstract class GenericMacro(whiteboxContext: whitebox.Context) {
case e: Exception => None
}
- inferredImplicit.map { imp =>
- imp
- }.orElse {
+ inferredImplicit.orElse {
directInferImplicit(genericType, typeConstructor)
}
} else {
@@ -146,8 +142,6 @@ abstract class GenericMacro(whiteboxContext: whitebox.Context) {
log(c)(s"directInferImplicit($genericType) given definitions for ${GlobalMutableState.enclosingTypes(c).mkString("{", ", ", "}")}")
- //if(genericType.typeSymbol.isAbstract) log(c)(s"cannot derive typeclass for abstract type $genericType")
-
val myName: TermName = TermName(c.freshName(genericType.typeSymbol.name.encodedName.toString.toLowerCase+"Extractor"))
val typeSymbol = genericType.typeSymbol
val classType = if(typeSymbol.isClass) Some(typeSymbol.asClass) else None