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)
- Migrate parser to the new span combining scheme HOT 1
- ICE: `byte index 65 is not a char boundary` HOT 1
- `x test` doesn't work for absolute paths
- Nightly regression: `panic::set_hook()` signature incompatible if used with core::panic::PanicInfo HOT 4
- `non_local_definitions` lint fires for `impl Trait for NonLocalType<SomeLocalType>`, probably shouldn't HOT 3
- Tracking Issue for `substr_range` and related methods HOT 2
- wasm64: std fails to build with `target-feature=+atomics` HOT 2
- https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
- rustdoc-json: Support `unsafe_extern_blocks`
- `#[used]` attribute on static items in `extern` block has suboptimal error message
- Build fail for WebAssembly on Windows with wasm-pack HOT 1
- Crater runs for 1.80 HOT 5
- assertion `left == right` failed HOT 1
- PR #113525 (Dynamically size sigaltstk in stdI) adds dependency on `libc::getauxval` breaking linaro-1.13.1-4.7 compatibility HOT 4
- `doc(inline)` overrides `doc(hidden)`, but only for crates
- Inline ASM: Registers in the `dreg_low16` register class fail cause compilation failures when the `d32` target feature is disabled HOT 1
- Tracking Issue for `core::clone::CloneToUninit` trait HOT 3
- trying to get pointer to extern typed field causes runtime panic HOT 5
- Tracking Issue for `-Z verbose-asm`
- `unreachable_code` detection and/or lint seems broken 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.