Skip to content

Commit c601a72

Browse files
committed
Issue a "did you mean" hint only if there's nothing else to say
1 parent 1124b35 commit c601a72

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ object messages {
343343
}
344344

345345
// Get closest match in `site`
346-
val closest =
346+
def closest =
347347
decls
348348
.map { (n, sym) => (n, distance(n, name.show), sym) }
349349
.collect {
@@ -358,22 +358,22 @@ object messages {
358358
.sortBy(_._3)
359359
.take(1).map { case (n, sym, _) => (n, sym) }
360360

361-
val siteName = site match {
362-
case site: NamedType => site.name.show
363-
case site => i"$site"
364-
}
365-
366-
val closeMember = closest match {
367-
case (n, sym) :: Nil =>
368-
s" - did you mean $siteName.$n?"
369-
case Nil => ""
370-
case _ => assert(
371-
false,
372-
"Could not single out one distinct member to match on input with"
373-
)
374-
}
361+
val finalAddendum =
362+
if addendum.nonEmpty then addendum
363+
else closest match {
364+
case (n, _) :: Nil =>
365+
val siteName = site match
366+
case site: NamedType => site.name.show
367+
case site => i"$site"
368+
s" - did you mean $siteName.$n?"
369+
case Nil => ""
370+
case _ => assert(
371+
false,
372+
"Could not single out one distinct member to match on input with"
373+
)
374+
}
375375

376-
ex"$selected $name is not a member of ${site.widen}$closeMember$addendum"
376+
ex"$selected $name is not a member of ${site.widen}$finalAddendum"
377377
}
378378

379379
val explanation: String = ""

0 commit comments

Comments
 (0)