At the moment, this moves only a single diagnostic, but the idea is
reafactor the rest to use the same pattern. We are going to have a
single file per diagnostic. This file will define diagnostics code,
rendering range and fixes, if any. It'll also have all of the tests.
This is similar to how we deal with assists.
After we refactor all diagnostics to follow this pattern, we'll probably
move them to a new `ide_diagnostics` crate.
Not that we intentionally want to test all diagnostics on this layer,
despite the fact that they are generally emitted in the guts on the
compiler. Diagnostics care to much about the end presentation
details/fixes to be worth-while "unit" testing. So, we'll unit-test only
the primary output of compilation process (types and name res tables),
and will use integrated UI tests for diagnostics.
8926: internal: Drop uncompressed release artifacts and those following the old naming convention r=matklad a=lnicola
Closes#6996
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
8427: Move CI to rust-cache Action r=matklad a=Swatinem
This is humbling. I actually took inspiration from RAs pre-cache xtask when developing my action ;-)
Closes#7731
Co-authored-by: Arpad Borsos <swatinem@swatinem.de>
8042: Add perf_revision to benchmark results r=lnicola a=d2weber
I gave it a try to add the hash as described in #8031
Feel free to tell me if there is something I could improve.
Co-authored-by: Douglas Weber <douglas.web@web.de>
This commit adds diesel to the continuosly run benchmark suite. Diesel
heavily relies internally on macro generated code. Additionally there
are lots of complicated trait releations used as part of their API.
Therefore this benchmark will be quite sensitive to:
* Performance related changes in the macro expanding code
* Performance related changes while resolving trait bounds
CC #7950
This strips the run_clippy implementation out of xtask and replaces it by
a simple "cargo lint" alias which runs clippy with the corresponding flags.
Unfortunately I could not name the alias "clippy" because that would lead to infinite recursion.
We probably should look into removing `xtask codegen` altogether. The
test workflow works perfectly for package.json config.
There are two things preventing that:
* Lint completions are generated on demand.
* Docs are not committed to the repository.
7836: Check for path dev-dependencies with a version number r=lnicola a=lnicola
Closes https://github.com/rust-analyzer/rust-analyzer/pull/7828#issuecomment-788174522.
This looks a bit ugly, but at least fixes an issues where we missed target-specific dependencies.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
7797: Format generated lints and features manually r=matklad a=lnicola
As `quote` and `rustfmt` leave them on a single line, which makes running `grep` in the repository quite annoying.
Also removes a dead `gen_features.rs` file (`gen_lint_completions.rs` does the same thing).
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
7655: Include a commit log summary in the changelog r=matklad a=lnicola
This version omits any direct pushes, and maybe even pull requests merged from the GitHub UI. But I think it makes writing the release notes easier.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Use `npm ci` instead of `npm install`. `npm install` will overwrite
the lock file if you have a newer npm version than the one that
generated the package-lock.json