Conversation
error[E0425]: cannot find value `_0` in this scope
--> tests/test_display.rs:208:29
|
208 | #[derive(Debug, Error)]
| ^^^^^ not found in this scope
takumi-earth
pushed a commit
to earthlings-dev/thiserror
that referenced
this pull request
Jan 27, 2026
Reconstruct span information lost by compiler
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #86.
This is a workaround for rust-lang/rust#43081. The tokens were coming in with all spans erased (
#0 bytes(0..0)) due to the compiler bug, and so the call_site spans that we used in the generatedmatchexpression in the Display impl were not resolving the same as identifiers generated from the macro input. The workaround is to grab a fairly arbitrary span from the macro input (I chose the span of the format string) and use that for all new bindings inmatch. This way, ordinarily that span is going to have the same hygiene context as call_site, but if rust-lang/rust#43081 is happening then it will be #0 hygiene the same as the input tokens.