summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-05-30 09:11:35 +0000
committerMartin Odersky <odersky@gmail.com>2007-05-30 09:11:35 +0000
commit6712cfd277781008d6c66610ab23397cfcb5c850 (patch)
tree3bbb36144231c2555c2b455f85d944b3971d5bdd
parentfa4aaf9bcb71fa931d60199d747470f8e17aaeb5 (diff)
downloadscala-6712cfd277781008d6c66610ab23397cfcb5c850.tar.gz
scala-6712cfd277781008d6c66610ab23397cfcb5c850.tar.bz2
scala-6712cfd277781008d6c66610ab23397cfcb5c850.zip
fixed bug1105
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index 81ba6b5b9e..8c4e61273c 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -851,8 +851,12 @@ trait Symbols {
/** The case factory corresponding to this case class
* @pre case class is a member of some other class or package
*/
- final def caseFactory: Symbol =
- initialize.owner.info.decl(name.toTermName).suchThat(.isCaseFactory)
+ final def caseFactory: Symbol = {
+ var facname = name.toTermName
+ if (privateWithin.isClass && !privateWithin.isModuleClass && !hasFlag(EXPANDEDNAME))
+ facname = privateWithin.expandedName(facname)
+ initialize.owner.info.decl(facname).suchThat(.isCaseFactory)
+ }
/** If this symbol is a skolem, its corresponding type parameter, otherwise this */
def deSkolemize: Symbol = this