From 502d980afce26eff20def43ec345a4e712e95926 Mon Sep 17 00:00:00 2001 From: Aleksander Rainko Date: Wed, 3 May 2023 22:16:41 +0200 Subject: [PATCH] reference method values when building `Args` in Scala 3 --- sourcecode/src-3/sourcecode/Macros.scala | 4 ++-- sourcecode/test/src/sourcecode/ArgsTests.scala | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/sourcecode/src-3/sourcecode/Macros.scala b/sourcecode/src-3/sourcecode/Macros.scala index 5880678..69488c4 100644 --- a/sourcecode/src-3/sourcecode/Macros.scala +++ b/sourcecode/src-3/sourcecode/Macros.scala @@ -205,8 +205,8 @@ object Macros { } val texts0 = param.map(_.foldRight('{List.empty[Text[_]]}) { - case (vd @ ValDef(nme, _, optV), l) => - '{Text(${optV.fold('None)(_.asExpr)}, ${Expr(nme)}) :: $l} + case (vd @ ValDef(nme, _, _), l) => + '{Text(${Ref(vd.symbol).asExpr}, ${Expr(nme)}) :: $l} }) val texts = texts0.foldRight('{List.empty[List[Text[_]]]}) { case (l, acc) => diff --git a/sourcecode/test/src/sourcecode/ArgsTests.scala b/sourcecode/test/src/sourcecode/ArgsTests.scala index 0d353ca..f365bbd 100644 --- a/sourcecode/test/src/sourcecode/ArgsTests.scala +++ b/sourcecode/test/src/sourcecode/ArgsTests.scala @@ -7,14 +7,8 @@ object ArgsTests { def debug(implicit arguments: sourcecode.Args): Unit = args = arguments.value.map(_.map(t => t.source -> t.value)) - // FIXME Can't manage to get the arg values from dotty… - val checkValues = !TestUtil.isDotty - def check(expected: Seq[Seq[(String, Any)]]): Unit = - if (checkValues) - assert(args == expected, s"Expected: $expected, got: $args") - else - assert(args.map(_.map(_._1)) == expected.map(_.map(_._1)), s"Expected: ${expected.map(_.map(_._1))}, got: ${args.map(_.map(_._1))}") + assert(args == expected, s"Expected: $expected, got: $args") def foo(p1: String, p2: Long, p3: Boolean)(foo: String, bar: String): Unit = { debug