Comments (4)
honestly the main reason this issue was opened is because it seems like the only reason that this would vary so much is a serious bug in the linting framework.
from rust.
wait, am I supposed to be writing Span::call_site().located_at(source_span)
to point the error at the source while making the span aware it is a "macro-tainted" span? doing that seems to cause the lints to stop firing...
from rust.
honestly the main reason this issue was opened is because it seems like the only reason that this would vary so much is a serious bug in the linting framework.
IIRC, many lints don't try to handle macro-generated code (or code with mixed soures) because it's a lot of complexity. The lints typically use Span::from_expansion
to check if a span is macro-generated, and assumes that spans generated from proc macros properly account for hygiene. In this case, I think you need Span::mixed_site().located_at(user_span)
in order for the span to be marked as "generated from macros" (from your proc macro) so lints can avoid firing on macro-generated spans.
from rust.
for note, just using Span::call_site
, without redirecting the span to its source in some way, can result in the span just touching a single character in an obviously-illogical way, which can be quite vexing. I think this is a consequence mostly of nested proc macro expansions? -Zmacro-backtrace
doesn't really illuminate this much, as far as I've noticed.
from rust.
Related Issues (20)
- Detect when user tries to write `Iterator` that incorrectly borrows from `Self` and would need GATs HOT 5
- 3-way comparison is branchier after 1.71 HOT 6
- returning a future from a function with an `impl Trait` argument references that argument even if not used in the future, causing lifetime errors HOT 3
- compiler SIGBUS: access to undefined memory when -v is provided HOT 17
- Allow `check-cfg` to take a regex config name and values HOT 3
- The unexpected slowness of `core::ptr::copy` when buffer size approaches 4096 HOT 5
- Coverage on nightly generate : maybe try to call `try_normalize_erasing_regions` instead
- SIGSEGV error on release build (nightly) HOT 10
- Bad diagnostic on type mismatch for associated type requirements
- Niche in Arc<..> variant of enum not used by Option<..> HOT 2
- Bad interaction between never_type, try_blocks, and From/Into
- "./x.py test mir-opt --bless" no longer works HOT 4
- async closure syntax causes compiler error in disabled code block HOT 3
- ICE in `uv` when doing a rebuild after code change HOT 1
- New nightly feature "rustc-check-cfg" doesn't work as advertised by warning hint (cannot dismiss warning) HOT 4
- ICE: "[HIR node] cannot be placed in TypeckResults […]" involving const infinite loop HOT 1
- Optimization for types implementing drop seems broken on LLVM 19 HOT 3
- Inconsistent SIGSEGV while compiling the `tracing-attributes` crate on aarch64-unknown-linux-gnu HOT 1
- Build failure in gst-plugins-rs Subproject with meson 0.61.2-1 on Intel N100 CPU HOT 2
- Suboptimal codegen for ARM32 targets when performing offset load HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust.