summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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