Skip to content

Commit 5c2efc5

Browse files
authored
Improve implicit parameter error message with aliases (#17125)
Fixes #17122
2 parents d640193 + b223c20 commit 5c2efc5

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

compiler/src/dotty/tools/dotc/typer/Implicits.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ trait Implicits:
969969
case Select(qual, nme.apply) if defn.isFunctionType(qual.tpe.widen) =>
970970
val qt = qual.tpe.widen
971971
val qt1 = qt.dealiasKeepAnnots
972-
def addendum = if (qt1 eq qt) "" else (i"\nThe required type is an alias of: $qt1")
972+
def addendum = if (qt1 eq qt) "" else (i"\nWhere $qt is an alias of: $qt1")
973973
i"parameter of ${qual.tpe.widen}$addendum"
974974
case _ =>
975975
i"${ if paramName.is(EvidenceParamName) then "an implicit parameter"

tests/neg/i17122.check

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-- [E172] Type Error: tests/neg/i17122.scala:7:14 ----------------------------------------------------------------------
2+
7 |def test = m() // error
3+
| ^
4+
| No given instance of type A was found for parameter of C
5+
| Where C is an alias of: (A) ?=> B

tests/neg/i17122.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
case class A()
2+
case class B()
3+
4+
type C = A ?=> B
5+
def m(): C = ???
6+
7+
def test = m() // error

0 commit comments

Comments
 (0)