diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala | 11 | ||||
-rw-r--r-- | compiler/src/dotty/tools/dotc/typer/ErrorReporting.scala | 6 |
2 files changed, 4 insertions, 13 deletions
diff --git a/compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala b/compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala index ce3cb48ec..489165e56 100644 --- a/compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala +++ b/compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala @@ -899,15 +899,4 @@ object messages { val msg = hl"trying to define package with same name as `$existing`" val explanation = "" } - - case class CyclicImplicitVal(cycleSym: Symbol)(implicit ctx: Context) - extends Message(34) { - val kind = "Cyclic Reference" - val msg = em"cyclic reference involving $cycleSym" - val explanation = - hl"""|This happens when the right hand-side of $cycleSym's definition - |involves an implicit search. - | - |To avoid the error, give $cycleSym an explicit type.""" - } } diff --git a/compiler/src/dotty/tools/dotc/typer/ErrorReporting.scala b/compiler/src/dotty/tools/dotc/typer/ErrorReporting.scala index 5709bfbf9..a066fc04a 100644 --- a/compiler/src/dotty/tools/dotc/typer/ErrorReporting.scala +++ b/compiler/src/dotty/tools/dotc/typer/ErrorReporting.scala @@ -28,7 +28,7 @@ object ErrorReporting { def cyclicErrorMsg(ex: CyclicReference)(implicit ctx: Context) = { val cycleSym = ex.denot.symbol - def errorMsg(msg: String, cx: Context): Message = + def errorMsg(msg: String, cx: Context): String = if (cx.mode is Mode.InferringReturnType) { cx.tree match { case tree: untpd.ValOrDefDef => @@ -48,7 +48,9 @@ object ErrorReporting { } else msg if (cycleSym.is(Implicit, butNot = Method) && cycleSym.owner.isTerm) - CyclicImplicitVal(cycleSym) + em"""cyclic reference involving implicit $cycleSym + |This happens when the right hand-side of $cycleSym's definition involves an implicit search. + |To avoid the error, give $cycleSym an explicit type.""" else errorMsg(ex.show, ctx) } |