aboutsummaryrefslogtreecommitdiff
path: root/core/shared/src/main/scala/magnolia.scala
diff options
context:
space:
mode:
Diffstat (limited to 'core/shared/src/main/scala/magnolia.scala')
-rw-r--r--core/shared/src/main/scala/magnolia.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/shared/src/main/scala/magnolia.scala b/core/shared/src/main/scala/magnolia.scala
index c2dbf0a..2a15573 100644
--- a/core/shared/src/main/scala/magnolia.scala
+++ b/core/shared/src/main/scala/magnolia.scala
@@ -296,6 +296,7 @@ object Magnolia {
q"""$paramsVal($idx) = $magnoliaPkg.Magnolia.param[$typeConstructor, $genericType,
$paramType](
${param.name.decodedName.toString},
+ ${param.returnType.typeConstructor =:= typeOf[Option[_]].typeConstructor},
$repeated,
$ref,
$defaultVal,
@@ -439,6 +440,7 @@ object Magnolia {
* This method is intended to be called only from code generated by the Magnolia macro, and
* should not be called directly from users' code. */
def param[Tc[_], T, P](name: String,
+ isOption: Boolean,
isRepeated: Boolean,
typeclassParam: => Tc[P],
defaultVal: => Option[P],
@@ -447,6 +449,7 @@ object Magnolia {
): Param[Tc, T] = new Param[Tc, T] {
type PType = P
def label: String = name
+ def option: Boolean = isOption
def repeated: Boolean = isRepeated
def default: Option[PType] = defaultVal
def typeclass: Tc[PType] = typeclassParam