summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-01-23 08:19:32 -0800
committerPaul Phillips <paulp@improving.org>2012-01-23 10:11:52 -0800
commit5cbd7d06eb8fe81bc3812ee99de05b1f4bd820fe (patch)
tree4ab1a9e75afad397b4602f288298fb2403db05bf /src/compiler/scala/reflect/internal/Symbols.scala
parentec3438c28987a38a3c03ebb5fe084709384b485a (diff)
downloadscala-5cbd7d06eb8fe81bc3812ee99de05b1f4bd820fe.tar.gz
scala-5cbd7d06eb8fe81bc3812ee99de05b1f4bd820fe.tar.bz2
scala-5cbd7d06eb8fe81bc3812ee99de05b1f4bd820fe.zip
Figured out the "$class$1" problem.
In lambda lift traits are renamed independently of their implementation classes, leading in the case of a method-defined trait to an interface called A$1 and an impl class called A$class$1 rather than A$1$class. This is now remedied.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Symbols.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala
index 0e729bc7ea..a943b6fe24 100644
--- a/src/compiler/scala/reflect/internal/Symbols.scala
+++ b/src/compiler/scala/reflect/internal/Symbols.scala
@@ -1425,7 +1425,10 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
*/
def sourceModule: Symbol = NoSymbol
- /** The implementation class of a trait. */
+ /** The implementation class of a trait. If available it will be the
+ * symbol with the same owner, and the name of this symbol with $class
+ * appended to it.
+ */
final def implClass: Symbol = owner.info.decl(nme.implClassName(name))
/** The class that is logically an outer class of given `clazz`.