From bc869e74cb18ffdb4d42b59ad654f55403b9b6bd Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 15 Dec 2016 15:43:09 +0100 Subject: Add CyclicImplicitVal error to messages (reverted from commit 559e49317912ce52c51e295346cebcafbb69462d) --- .../src/dotty/tools/dotc/reporting/diagnostic/messages.scala | 11 ----------- 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) } -- cgit v1.2.3