diff options
author | Paul Phillips <paulp@improving.org> | 2012-01-23 08:19:32 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-01-23 10:11:52 -0800 |
commit | 5cbd7d06eb8fe81bc3812ee99de05b1f4bd820fe (patch) | |
tree | 4ab1a9e75afad397b4602f288298fb2403db05bf /src/compiler/scala/reflect/internal/Symbols.scala | |
parent | ec3438c28987a38a3c03ebb5fe084709384b485a (diff) | |
download | scala-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.scala | 5 |
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`. |