diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-02 02:27:34 +0000 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-02 02:27:34 +0000 |
commit | 5b6f9f6e69fa15e1a731ec689e00ffdd9d139a9d (patch) | |
tree | 579fef264055ced3f59e2b806af3bffa4ee416d6 /plugins | |
parent | 092d7652d30a5c6648ef0e17d3cdf4027d6180eb (diff) | |
download | cbt-5b6f9f6e69fa15e1a731ec689e00ffdd9d139a9d.tar.gz cbt-5b6f9f6e69fa15e1a731ec689e00ffdd9d139a9d.tar.bz2 cbt-5b6f9f6e69fa15e1a731ec689e00ffdd9d139a9d.zip |
TypeTag instead of ClassTag for DynamicOverride as preparation for supporting multiple traits
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/essentials/DynamicOverrides.scala | 10 |
1 files changed, 6 insertions, 4 deletions
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] |