From 5b6f9f6e69fa15e1a731ec689e00ffdd9d139a9d Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Thu, 2 Mar 2017 02:27:34 +0000 Subject: TypeTag instead of ClassTag for DynamicOverride as preparation for supporting multiple traits --- plugins/essentials/DynamicOverrides.scala | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'plugins/essentials/DynamicOverrides.scala') diff --git a/plugins/essentials/DynamicOverrides.scala b/plugins/essentials/DynamicOverrides.scala index 274cdd1..8d67be7 100644 --- a/plugins/essentials/DynamicOverrides.scala +++ b/plugins/essentials/DynamicOverrides.scala @@ -13,10 +13,12 @@ trait DynamicOverrides extends BaseBuild{ protected [cbt] def overrides: String = "" // TODO: add support for Build inner classes - def newBuild[T <: DynamicOverrides:scala.reflect.ClassTag]: T = newBuild[T](context)("") - def newBuild[T <: DynamicOverrides:scala.reflect.ClassTag](body: String): T = newBuild[T](context)(body) - def newBuild[T <: DynamicOverrides:scala.reflect.ClassTag](context: Context)(body: String): T = { - val mixinClass = scala.reflect.classTag[T].runtimeClass + import scala.reflect.runtime.universe._ + def newBuild[T <: DynamicOverrides:TypeTag]: T = newBuild[T](context)("") + def newBuild[T <: DynamicOverrides:TypeTag](body: String): T = newBuild[T](context)(body) + def newBuild[T <: DynamicOverrides:TypeTag](context: Context)(body: String): T = { + val tag = typeTag[T] + val mixinClass = tag.mirror.runtimeClass(tag.tpe) assert(mixinClass.getTypeParameters.size == 0) val mixin = if( mixinClass == classOf[Nothing] -- cgit v1.2.3