diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-06-27 16:03:06 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-06-27 16:03:06 +0200 |
commit | 856fe4ad0472ab71d91a6ab442fba77c4cf9950b (patch) | |
tree | f45971d824669c0962ddb71b109837afd954c537 /src | |
parent | 899ad4f3f5388599b748525f4d412d7411b2b8f2 (diff) | |
parent | fcb3932b32a2133612473e7b061859f97aa562df (diff) | |
download | scala-856fe4ad0472ab71d91a6ab442fba77c4cf9950b.tar.gz scala-856fe4ad0472ab71d91a6ab442fba77c4cf9950b.tar.bz2 scala-856fe4ad0472ab71d91a6ab442fba77c4cf9950b.zip |
Merge pull request #3780 from xeno-by/topic/rangepos-macro-args
macro args now correctly preserve range positions
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Macros.scala | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Macros.scala b/src/compiler/scala/tools/nsc/typechecker/Macros.scala index f4456998c0..f40a92f8e5 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Macros.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Macros.scala @@ -417,9 +417,10 @@ trait Macros extends MacroRuntimes with Traces with Helpers { val wrappedArgs = mapWithIndex(args)((arg, j) => { val fingerprint = implParams(min(j, implParams.length - 1)) + val duplicatedArg = duplicateAndKeepPositions(arg) fingerprint match { - case LiftedTyped => context.Expr[Nothing](arg.duplicate)(TypeTag.Nothing) // TODO: SI-5752 - case LiftedUntyped => arg.duplicate + case LiftedTyped => context.Expr[Nothing](duplicatedArg)(TypeTag.Nothing) // TODO: SI-5752 + case LiftedUntyped => duplicatedArg case _ => abort(s"unexpected fingerprint $fingerprint in $binding with paramss being $paramss " + s"corresponding to arg $arg in $argss") } |