-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improve error message #889
improve error message #889
Conversation
@deprecated("use toTraceValue", "0.3.0") | ||
@deprecated("use .viaTraceableValue(TraceableValue)", "0.3.0") | ||
def stringToTraceValue(value: String): TraceValue = StringValue(value) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR. viaTraceableValue
looks like an implicit conversion so it doesn't seem like its intended to be called explicitly, so something still doesn't seem right. Would you be able to share the code you were having trouble with?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I cannot share the code unfortunately. Roughly is something like this
//> package natchez
/** A tracing effect, which always has a current span. */
trait Trace[F[_]] {
/** Puts a sequence of fields into the current span. */
def put(fields: (String, TraceValue)*): F[Unit]
somewhere in the code
Trace[F].put(", TraceValue.viaTraceableValue("string"))
Using something like TraceableValue()
is not available.
However, when encountering the error I assumed there was a new .toTraceValue
method in the object, but there isn't. The only available toTraceValue
comes from this typeclass . After several rounds of compiler tetris I got this
TraceValue.viaTraceableValue(traceValue)
To get my migration working from < 0.3.0
to 0.3.3
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the explanation, much appreciated. I took a closer look and I agree this deprecation message is more suitable.
However, it looks like the viaTraceableValue
implicit conversion should be applied automatically, and if it's not then that's a bug that we should fix. So if you could share an example that was working before and not working after the upgrade, that would be very helpful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@armanbilge I agree. that implicit conversions should be applied automatically. I would love to work on that, let me set the code to replicate the issue. I will work on this.
Co-authored-by: Arman Bilge <armanbilge@gmail.com>
For some reason found the error message was not clear on the actionable and made explicit how to change the method to take away the compiler error.