aboutsummaryrefslogtreecommitdiff
path: root/examples/shared/src/main/scala/default.scala
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-11-24 14:26:17 +0000
committerJon Pretty <jon.pretty@propensive.com>2017-11-24 14:26:17 +0000
commitd20a3824ce7719deb328ffed002288bedc398f77 (patch)
tree3c5cb04da66710498759439f8e8c068a0e9502ac /examples/shared/src/main/scala/default.scala
parent192173d811f870e6e9c705c80118e27dc63a898b (diff)
downloadmagnolia-d20a3824ce7719deb328ffed002288bedc398f77.tar.gz
magnolia-d20a3824ce7719deb328ffed002288bedc398f77.tar.bz2
magnolia-d20a3824ce7719deb328ffed002288bedc398f77.zip
Use virtualized `param` if it is available
Diffstat (limited to 'examples/shared/src/main/scala/default.scala')
-rw-r--r--examples/shared/src/main/scala/default.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/examples/shared/src/main/scala/default.scala b/examples/shared/src/main/scala/default.scala
index 4c1b634..aa9dedc 100644
--- a/examples/shared/src/main/scala/default.scala
+++ b/examples/shared/src/main/scala/default.scala
@@ -10,10 +10,11 @@ trait Default[T] { def default: T }
object Default {
type Typeclass[T] = Default[T]
+ type ParamType[T, P] = Param[Default, T] { type PType = P }
/** constructs a default for each parameter, using the constructor default (if provided),
* otherwise using a typeclass-provided default */
- def combine[T](ctx: CaseClass[Default, T]): Default[T] = new Default[T] {
+ def combine[T](ctx: CaseClass[Default, T, Param[Default, T]]): Default[T] = new Default[T] {
def default = ctx.construct { param =>
param.default.getOrElse(param.typeclass.default)
}