Rename refactoring for case class parameter should also rename named arguments to apply and copy
retronym opened this issue · 3 comments
retronym commented
retronym commented
To enable this, the compiler should retain the AssignOrNamedArg tree as a tree attachment after the names/defaults transformation has eliminated them.
Something like this:
commit 8e47eb3e2b864a18d22e0030041d865af3e94ce5
Author: Jason Zaugg <jzaugg@gmail.com>
Date: Tue Feb 18 15:01:13 2014 +0100
index on master: 8536c31 Merge pull request #3544 from retronym/topic/unus
diff --git a/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala b/sr
index dceb0a4..1660b6e 100644
--- a/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
@@ -567,7 +567,7 @@ trait NamesDefaults { self: Analyzer =>
if (argIndex != paramPos)
positionalAllowed = false
argPos(argIndex) = paramPos
- rhs
+ rhs.updateAttachment(NamesDefaultOriginalArguments(arg))
}
case _ =>
argPos(argIndex) = argIndex
@@ -578,4 +578,10 @@ trait NamesDefaults { self: Analyzer =>
(namelessArgs, argPos)
}
+
+ final case class NamesDefaultOriginalArguments(named: AssignOrNamedArg) {
+ // TODO
+ // def importAttachment(importer: Importer): NamesDefaultOriginalArgumen
+ // new importer.NamesDefaultOriginalArguments(args map (t => importer.im
+ }
}misto commented
👍

