Skip to content

Commit 8dc9fd5

Browse files
committed
Revert "WIP try and fail to report this more precisely and fix tests"
This reverts commit b2147a7.
1 parent b2147a7 commit 8dc9fd5

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

compiler/src/dotty/tools/dotc/core/TypeErrors.scala

+1-3
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,8 @@ class CyclicReference private (val denot: SymDenotation, var inImplicitSearch: B
112112
cx.tree match {
113113
case tree: untpd.ValOrDefDef if inImplicitSearch && !tree.tpt.typeOpt.exists =>
114114
// Can happen in implicit defs (#4709) or outside (#3253).
115-
TermMemberNeedsNeedsResultTypeForImplicitSearch(tree.name)
115+
TermMemberNeedsNeedsResultTypeForImplicitSearch(cycleSym)
116116
case tree: untpd.DefDef if !tree.tpt.typeOpt.exists =>
117-
// The reported symbol is more correct, but it might *not* be a method!
118-
// OverloadedOrRecursiveMethodNeedsResultType(cycleSym.name)
119117
OverloadedOrRecursiveMethodNeedsResultType(tree.name)
120118
case tree: untpd.ValDef if !tree.tpt.typeOpt.exists =>
121119
RecursiveValueNeedsResultType(tree.name)

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -2111,13 +2111,13 @@ object messages {
21112111
}
21122112

21132113
// Relative of CyclicReferenceInvolvingImplicit and RecursiveValueNeedsResultType
2114-
case class TermMemberNeedsNeedsResultTypeForImplicitSearch(cycleSymName: Names.TermName)(implicit ctx: Context)
2114+
case class TermMemberNeedsNeedsResultTypeForImplicitSearch(cycleSym: Symbol)(implicit ctx: Context)
21152115
extends Message(TermMemberNeedsNeedsResultTypeForImplicitSearchID) {
21162116
val kind = "Syntax"
2117-
val msg = hl"""Member $cycleSymName needs result type because its right-hand side attempts implicit search"""
2117+
val msg = hl"""$cycleSym needs result type because its right-hand side attempts implicit search"""
21182118
val explanation =
2119-
hl"""|The right hand-side of $cycleSymName's definition requires an implicit search at the highlighted position.
2120-
|To avoid this error, give `${cycleSymName}` an explicit type.
2119+
hl"""|The right hand-side of $cycleSym's definition requires an implicit search at the highlighted position.
2120+
|To avoid this error, give `${cycleSym.name}` an explicit type.
21212121
|""".stripMargin
21222122
}
21232123
}

compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala

+9-9
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ class ErrorMessagesTests extends ErrorMessagesTest {
291291

292292
assertMessageCount(1, messages)
293293
val OverloadedOrRecursiveMethodNeedsResultType(name) :: Nil = messages
294-
assertEquals("even", name.show)
294+
assertEquals("odd", name.show)
295295
}
296296

297297
@Test def mutualRecursion_i2001a =
@@ -312,8 +312,8 @@ class ErrorMessagesTests extends ErrorMessagesTest {
312312
implicit val ctx: Context = ictx
313313

314314
assertMessageCount(1, messages)
315-
val OverloadedOrRecursiveMethodNeedsResultType(denot) :: Nil = messages
316-
assertEquals("foo", denot.show)
315+
val CyclicReferenceInvolving(denot) :: Nil = messages
316+
assertEquals("value x", denot.show)
317317
}
318318

319319

@@ -333,8 +333,8 @@ class ErrorMessagesTests extends ErrorMessagesTest {
333333
implicit val ctx: Context = ictx
334334

335335
assertMessageCount(1, messages)
336-
val TermMemberNeedsNeedsResultTypeForImplicitSearch(name) :: Nil = messages
337-
assertEquals("x", name.show)
336+
val TermMemberNeedsNeedsResultTypeForImplicitSearch(tree) :: Nil = messages
337+
assertEquals("x", tree.name.show)
338338
}
339339

340340
@Test def implicitSearchForcesImplicitRetType_i4709 =
@@ -358,8 +358,8 @@ class ErrorMessagesTests extends ErrorMessagesTest {
358358
implicit val ctx: Context = ictx
359359

360360
assertMessageCount(1, messages)
361-
val TermMemberNeedsNeedsResultTypeForImplicitSearch(name) :: Nil = messages
362-
assertEquals("ctx", name.show)
361+
val TermMemberNeedsNeedsResultTypeForImplicitSearch(tree) :: Nil = messages
362+
assertEquals("ctx", tree.name.show)
363363
}
364364

365365
@Test def implicitSearchForcesNonImplicitRetTypeOnExplicitImport_i3253 =
@@ -376,8 +376,8 @@ class ErrorMessagesTests extends ErrorMessagesTest {
376376
implicit val ctx: Context = ictx
377377

378378
assertMessageCount(1, messages)
379-
val TermMemberNeedsNeedsResultTypeForImplicitSearch(name) :: Nil = messages
380-
assertEquals("test", name.show)
379+
val TermMemberNeedsNeedsResultTypeForImplicitSearch(tree) :: Nil = messages
380+
assertEquals("test", tree.name.show)
381381
}
382382

383383
@Test def superQualMustBeParent =

0 commit comments

Comments
 (0)