Skip to content

Commit 9d06bc3

Browse files
committed
simplistic implementation of toMap
1 parent 141b544 commit 9d06bc3

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

examples/src/test/scala/scala/meta/serialiser/MappableTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class MappableTest extends WordSpec with Matchers {
1212
"simple case class" should {
1313
"deserialise to map" in {
1414
val testInstance = SimpleCaseClass(i = 42, s = "something")
15-
testInstance.toMap shouldBe 'empty
15+
testInstance.toMap shouldBe Map("i" -> 42, "s" -> "something")
1616
}
1717
}
1818

src/main/scala/scala/meta/serialiser/mappable.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ class mappable extends StaticAnnotation {
88
inline def apply(defn: Any): Any = meta {
99
val q"..$mods class $tName (..$params) extends $template" = defn
1010

11+
val keyValues: Seq[Term] = params.map { param =>
12+
val memberName = Term.Name(param.name.value)
13+
q"${param.name.value} -> $memberName"
14+
}
15+
1116
val res = q"""
1217
..$mods class $tName(..$params) {
13-
def toMap(): Map[String, Any] = Map.empty[String, Any]
18+
def toMap(): Map[String, Any] = Map[String, Any](..$keyValues)
1419
}
1520
"""
1621

0 commit comments

Comments
 (0)