Go to file
bors[bot] fdd49b9713
Merge #10789
10789: internal: Check for derive attributes by item path, not `derive` identifier r=Veykril a=Veykril

Prior we only checked if an attribute is the exact `derive` identifier and nothing else to collect derive attributes. That means when we encounter the following:
```rs
#[::core::macros::builtin::derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ModPath {
    pub kind: PathKind,
    segments: Vec<Name>,
}
```
We won't actually expand the derive attributes, but instead we just expand the `derive` attribute with our dummy identity expander.

The changes here make it so we actually lookup the attribute path, check if it is the derive attribute and then collect the derives.


Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-17 20:11:21 +00:00
.cargo
.github Type-check TS on CI and also turn off the strict setting useUnknownInCatchVariables 2021-11-04 01:23:45 +02:00
.vscode
assets Simplified the dot in the wide logo 2021-10-13 01:41:12 +03:00
bench_data
crates Simplify 2021-11-17 21:02:33 +01:00
docs flip the default 2021-11-13 23:39:34 +00:00
editors/code flip the default 2021-11-13 23:39:34 +00:00
lib Set MSRV 2021-10-23 15:07:11 +03:00
xtask Use .into_iter() method on array to avoid dereference 2021-11-03 16:13:47 +11:00
.gitattributes Mark large benchmark data files as binary to filter greps 2021-09-22 12:51:58 -07:00
.gitignore support goto definition and find references 2021-09-26 10:04:02 +03:30
bors.toml
Cargo.lock minor: Lift out FxIndex{Map/Set} types into ide_db 2021-11-16 12:15:47 +01:00
Cargo.toml Drop resolver and authors manifest entries 2021-10-25 18:12:40 +03:00
LICENSE-APACHE
LICENSE-MIT
PRIVACY.md Consolidate the privacy notes 2021-06-15 20:07:59 +03:00
README.md Consolidate the privacy notes 2021-06-15 20:07:59 +03:00
rustfmt.toml

rust-analyzer logo

rust-analyzer is a modular compiler frontend for the Rust language. It is a part of a larger rls-2.0 effort to create excellent IDE support for Rust.

Work on rust-analyzer is sponsored by

Ferrous Systems

Quick Start

https://rust-analyzer.github.io/manual.html#installation

Documentation

If you want to contribute to rust-analyzer or are just curious about how things work under the hood, check the ./docs/dev folder.

If you want to use rust-analyzer's language server with your editor of choice, check the manual folder. It also contains some tips & tricks to help you be more productive when using rust-analyzer.

Security and Privacy

See the corresponding sections of the manual.

Communication

For usage and troubleshooting requests, please use "IDEs and Editors" category of the Rust forum:

https://users.rust-lang.org/c/ide/14

For questions about development and implementation, join rust-analyzer working group on Zulip:

https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer

License

Rust analyzer is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.