diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Symbols.scala | 8 |
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 |