aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/FirstTransform.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/transform/FirstTransform.scala')
-rw-r--r--src/dotty/tools/dotc/transform/FirstTransform.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/FirstTransform.scala b/src/dotty/tools/dotc/transform/FirstTransform.scala
index 62045890e..bde17c854 100644
--- a/src/dotty/tools/dotc/transform/FirstTransform.scala
+++ b/src/dotty/tools/dotc/transform/FirstTransform.scala
@@ -81,7 +81,15 @@ class FirstTransform extends MiniPhaseTransform with IdentityDenotTransformer wi
def addMissingCompanions(stats: List[Tree]): List[Tree] = stats map {
case stat: TypeDef if singleClassDefs contains stat.name =>
- Thicket(stat :: newCompanion(stat.name.toTermName).trees)
+ val objName = stat.name.toTermName
+ val nameClash = stats.exists {
+ case other: MemberDef =>
+ other.name == objName && other.symbol.info.isParameterless
+ case _ =>
+ false
+ }
+ val uniqueName = if (nameClash) objName.avoidClashName else objName
+ Thicket(stat :: newCompanion(uniqueName).trees)
case stat => stat
}