Commit Graph

637 Commits

Author SHA1 Message Date
Aleksey Kladov
efa069d288 internal: start new diagnostics API
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.
2021-06-13 14:55:45 +03:00
Aleksey Kladov
546be18e3a internal: check that coverage marks are always paired 2021-06-13 13:13:26 +03:00
Maan2003
6cc6dee9e9
clippy::useless_conversion 2021-06-13 09:25:55 +05:30
Maan2003
c9b4ac5be4
clippy::redudant_borrow 2021-06-13 09:24:16 +05:30
Jonas Schievink
1d6eef1350 Update ungrammar 2021-06-11 18:34:30 +02:00
Laurențiu Nicola
993c7a165e Use HTTPS for clippy lint JSON 2021-06-07 10:40:12 +03:00
Lukas Wirth
fc06058a76 Unescape generated clippy lints 2021-06-05 19:14:53 +02:00
Laurențiu Nicola
18484365e6 Enable proc macros and build scripts by default in CLI 2021-06-05 15:20:41 +03:00
Lukas Wirth
ae1c63fcdd Exclude crates/ide_db/src/helpers/generated_lints.rs from tidy::check_todo 2021-06-04 19:45:10 +02:00
Lukas Wirth
0c89f38378 Replace - with _ in generated lint names 2021-06-04 19:10:52 +02:00
Lukas Wirth
0b9ba4977e Generate default lint groups 2021-06-04 18:55:08 +02:00
Lukas Wirth
343df88ac7 Generate default lint completions 2021-06-04 18:35:19 +02:00
Lukas Wirth
5d17b6a687 Implement hover for lints 2021-06-04 17:03:18 +02:00
Clemens Wasser
a1e650082b Use push_str 2021-06-03 13:01:16 +02:00
Clemens Wasser
629e8d1ed0 Apply more clippy suggestions and update generated 2021-06-03 12:46:56 +02:00
Clemens Wasser
3c6dc0f89d Apply a few clippy suggestions 2021-06-03 11:46:03 +02:00
Aleksey Kladov
7d8f701e99 internal: disable debuginfo afterall 2021-05-27 11:53:33 +03:00
Domantas Jadenkus
8d2e3816bc tidy 2021-05-24 22:17:16 +03:00
Aleksey Kladov
3ea62568ba internal: try re-enabling debug info on releases again
full LTO OOMs the LLVM, lets try thin

cc https://github.com/rust-lang/rust/issues/85598
2021-05-24 14:41:31 +03:00
Aleksey Kladov
9f9c4bf3de internal: disable debug symbols due to failing windows build
See https://github.com/rust-lang/rust/issues/85598
2021-05-23 14:06:25 +03:00
bors[bot]
bc1ba1549d
Merge #8926
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>
2021-05-22 18:35:02 +00:00
Aleksey Kladov
db393982ca internal: try enabling debug info for releases
We now compress releases, so let's check  if debug info is light enough
to actually ship to users. Getting line numbers back would be helpful!
2021-05-22 21:19:48 +03:00
Laurențiu Nicola
7ff972f0ce Drop uncompressed release artifacts and those following the old naming convention 2021-05-22 20:26:29 +03:00
Florian Diebold
a88c7c04d2 Add last remaining module docstring 2021-05-22 16:39:56 +02:00
Aleksey Kladov
dc1577d58d Add even more docs 2021-05-22 17:20:22 +03:00
Aleksey Kladov
188b0f96f9 Add more docs 2021-05-22 16:53:47 +03:00
Aleksey Kladov
fa7fc0e5cb internal: scalable module structure for fixits 2021-05-17 12:04:17 +03:00
Aleksey Kladov
0fce38b138 fix: direct people to the right repository 2021-05-08 00:26:29 +03:00
Aleksey Kladov
6a16ec52aa internal: use API stabilized in 1.52 2021-05-06 20:12:15 +03:00
bors[bot]
544a93ee08
Merge #8710
8710: feat: build releases with lto=true r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-03 14:00:07 +00:00
Aleksey Kladov
ee1c5d9d19 feat: build releases with lto=true
closes #8050
2021-05-03 16:56:44 +03:00
bors[bot]
242fa3c15b
Merge #8427
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>
2021-05-03 13:37:12 +00:00
Kirill Bulatov
c24bdab97e Use -u instead of --utc date flag 2021-04-26 17:12:13 +03:00
Aleksey Kladov
4f9640ff39 fix: add date to the version string on Mac
It doesn't support `--iso`
2021-04-26 15:20:15 +03:00
Aleksey Kladov
869ec5f97a fix: dont' misundentify nightly as stable in --version on Mac&Win
We used to set `--nightly` in CI, and only for linux. Let's detect this
in xtask instead.
2021-04-26 15:17:02 +03:00
Aleksey Kladov
26dfb6b9d0
Update xtask/src/release.rs
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-04-26 13:49:19 +03:00
Aleksey Kladov
1745207a08
Update xtask/src/release.rs
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-04-26 13:49:14 +03:00
Aleksey Kladov
7bb9c147c0 internal: make normal release after a poin release less annoying 2021-04-26 13:41:34 +03:00
Aleksey Kladov
8d54fd105c fix: correct version string to contain hash, build date and channel 2021-04-24 13:36:45 +03:00
Aleksey Kladov
43ea1bb9b9 minor 2021-04-24 10:31:58 +03:00
Aleksey Kladov
03f5e53678 minor 2021-04-24 09:08:56 +03:00
Aleksey Kladov
905ae2843a fix: 'configuration.property' error in VS Code
closes #7789
2021-04-23 22:08:09 +03:00
Laurențiu Nicola
39ce393a9e Automatically categorize the changelog entries 2021-04-20 19:54:58 +03:00
kjeremy
236814db0d Update license check 2021-04-15 12:15:23 -04:00
Arpad Borsos
9c022e3013
Move CI to rust-cache Action 2021-04-08 18:55:28 +02:00
kjeremy
bdee55d66b Rust 1.51 2021-03-25 11:34:13 -04:00
Matthias Krüger
202b51bc7b a lot of clippy::style fixes 2021-03-21 16:15:41 +01:00
Matthias Krüger
bd407a9882 xtask: remove redundant lifetime (clippy::extra_unused_lifetimes) 2021-03-21 12:49:40 +01:00
Matthias Krüger
8a67116857 use strip_prefix() instead of starts_with and slicing (clippy::manual_strip) 2021-03-21 12:38:21 +01:00
Lukas Wirth
4771a56791 Parse extended_key_value_attributes 2021-03-19 02:13:46 +01:00
bors[bot]
9caeef98e3
Merge #8042
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>
2021-03-16 19:36:55 +00:00
Edwin Cheng
8e07b23b84 Fix macro expansion for statements w/o semicolon 2021-03-16 13:44:50 +08:00
Douglas Weber
81a2eaa92a Add perf_revision to benchmark results 2021-03-15 22:21:02 +01:00
Georg Semmler
aa6db3f36a
Add diesel to the benchmark suite
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
2021-03-15 15:19:16 +01:00
Matthias Krüger
5008e56821 xtask: replace "lint" command by a simply cargo alias
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.
2021-03-14 13:36:45 +01:00
Lukas Wirth
ebf4448f78 Fix remaining references to cargo xtask codegen 2021-03-12 15:10:33 +01:00
Aleksey Kladov
d2bb2268d3 Minor 2021-03-08 21:49:25 +03:00
Aleksey Kladov
c0943f84fd Cleanup the error message 2021-03-08 21:45:43 +03:00
Aleksey Kladov
e89c0e3961 Remove now dead code 2021-03-08 21:45:43 +03:00
Aleksey Kladov
095b9110b5 Unused params 2021-03-08 21:45:43 +03:00
Aleksey Kladov
1eb61203b7 Make code generation just work
Contributors don't need to learn about `cargo xtask codegen` if `cargo
test` just does the right thing.
2021-03-08 21:45:37 +03:00
Aleksey Kladov
0f6f458cc1 Make working with codegen less annoying
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.
2021-03-08 21:45:06 +03:00
Aleksey Kladov
0296cd590e ⬆️ xflags 2021-03-07 11:12:59 +03:00
Aleksey Kladov
bf4aaa4fb0 Underengineer cargo xtask install --client 2021-03-05 20:42:41 +03:00
Aleksey Kladov
142f9a03fd Cleanup install command 2021-03-05 11:51:32 +03:00
Aleksey Kladov
97b1550dda Fix regression where the client was not installed 2021-03-05 11:12:40 +03:00
Aleksey Kladov
84483f672f Fix xflags fallout
https://github.com/rust-analyzer/rust-analyzer/pull/7847#issuecomment-788920830
2021-03-02 16:50:03 +03:00
bors[bot]
61c73caa30
Merge #7836
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>
2021-03-02 08:38:25 +00:00
Aleksey Kladov
d8f7f2dee9
Update xtask/src/flags.rs
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-03-01 22:29:17 +03:00
Laurențiu Nicola
203cfff826 Check for path dev-dependencies with a version number 2021-03-01 21:13:16 +02:00
Aleksey Kladov
4ce20b80c5 Use cli parser with auto-generated help 2021-03-01 22:12:43 +03:00
Aleksey Kladov
979c26e1ae Axe pre-commit 2021-03-01 21:30:21 +03:00
Aleksey Kladov
d9dcfd81c5 Simplify xtask
lib/bin/test separation isn't really needed.
2021-03-01 20:26:37 +03:00
bors[bot]
f682627da4
Merge #7797
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>
2021-02-27 14:56:24 +00:00
Laurențiu Nicola
351670f620 Remove dead gen_features code 2021-02-27 16:26:02 +02:00
Laurențiu Nicola
0fb01367f5 Format generated features manually instead of relying on rustfmt 2021-02-27 16:25:06 +02:00
Aleksey Kladov
68a9411845 reliable memory usage during benchmarking 2021-02-23 21:02:17 +03:00
Chetan Khilosiya
e4756cb4f6 7526: Rename crate assists to ide_assists. 2021-02-23 00:59:16 +05:30
kjeremy
11a65c64d0 update tidy 2021-02-22 12:25:02 -05:00
Laurențiu Nicola
6c0f7a2f56 Pin ungrammar 2021-02-21 19:33:55 +02:00
Aleksey Kladov
3db64a400c rename completion -> ide_completion
We don't have completion-related PRs in flight, so lets do it
2021-02-17 17:53:31 +03:00
andylizi
726f9e3163
Build dist-x86_64-unknown-linux-musl releases 2021-02-13 18:45:07 +08:00
bors[bot]
935830d05b
Merge #7655
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>
2021-02-12 18:20:27 +00:00
Laurențiu Nicola
8814d1368d Include a commit log summary in the changelog 2021-02-12 19:53:58 +02:00
kjeremy
cb24d323fe Bump rust to latest stable 1.50 2021-02-12 12:00:05 -05:00
Laurențiu Nicola
c0ff61c4b9 Track remote branch on xtask promote 2021-02-09 16:52:44 +02:00
kjeremy
8ff69055b9 Do not overwrite lock file
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
2021-02-05 10:57:36 -05:00
Edwin Cheng
e73ffbf1e5 Add cargo file tidy test 2021-02-03 22:01:09 +08:00
Aleksey Kladov
d35bda6429 Make always-assert crate reusable 2021-01-26 22:13:42 +03:00
Aleksey Kladov
feb252138d Fix mega bug
https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Manual.20content.20is.20duplicated
2021-01-21 16:37:46 +03:00
kjeremy
db0aaeca33 Update pico-args
Should maintains existing behavior
2021-01-19 11:56:45 -05:00
Jonas Schievink
9b5fa1c61a Add back jemalloc support 2021-01-18 19:39:46 +01:00
Jonas Schievink
872bf09381 Add MacroType syntax 2021-01-18 17:56:35 +01:00
Lukas Wirth
98718e0544 Wrap remaining self/super/crate in Name{Ref} 2021-01-15 22:18:43 +01:00
Lukas Wirth
cb863390f2 Handle self/super/crate in PathSegment as NameRef 2021-01-15 19:21:23 +01:00
Daiki Ihara
85cd3524e2 Add support for yiled keyword 2021-01-15 23:35:17 +09:00
Daiki Ihara
d9b1fa6da3 Upgrade ungrammar to v1.7 2021-01-15 23:35:17 +09:00
Lukas Wirth
3d6480bc31 Render Fn* trait objects and impl types as rust does 2021-01-13 13:29:47 +01:00
Aleksey Kladov
c62f1c762f Add build benchmark xtask command 2021-01-11 21:39:16 +03:00
Edwin Cheng
8584d26926 Add check for dbg! macro 2021-01-08 17:38:43 +08:00
Edwin Cheng
66b132b4b2 Remove unused dbg 2021-01-08 17:38:43 +08:00
Kevaundray Wedderburn
72b9a4fbd3 Change <|> to $0 - Rebase 2021-01-07 12:09:23 +00:00
Aleksey Kladov
08a1bcf9f8 Extend git evacuation procedure 2021-01-07 12:01:21 +03:00
Aleksey Kladov
f9707cde68 Rename expr -> tail_expr 2021-01-05 15:51:13 +03:00
Laurențiu Nicola
08e609bef0 Stop using beta toolchain in xtask dist 2021-01-02 09:51:41 +02:00
Aleksey Kladov
8106893dc6 deny_clippy test works with cfg_attr 2021-01-01 01:58:04 +03:00
bors[bot]
fd1fcf2c2e
Merge #7010
7010: Update ungrammar for const block patterns r=matklad a=Veykril

Fixes #6848

Adds const blocks and const block patterns to the AST and parses them.

Blocked on https://github.com/rust-analyzer/ungrammar/pull/17/, will merge that PR there once this one gets the OK so I can remove the local ungrammar dependency path and fix the Cargo.lock.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 10:37:30 +00:00
Laurențiu Nicola
25a987703c Don't release uncompressed binaries under the new naming scheme 2020-12-23 08:46:38 +02:00
Lukas Wirth
be7260485e Update ungrammar for const block patterns 2020-12-23 01:26:31 +01:00
Laurențiu Nicola
e881815115 Build aarch64-apple-darwin binaries on CI 2020-12-22 13:18:00 +02:00
Lukas Wirth
dd496223f5 Node-ify lifetimes 2020-12-16 14:16:09 +01:00
Jonas Schievink
c1cb595382 Move to upstream macro_rules! model 2020-12-15 15:37:37 +01:00
Jeremy Kolb
26a1675764 Remove some redundant allocations 2020-12-12 12:27:09 -05:00
Jonas Schievink
cb35d3a05a metrics: go back to cmd! 2020-12-11 18:24:42 +01:00
Jonas Schievink
64752ef5e9 Fix typo leading to metrics loss 2020-12-11 17:55:52 +01:00
Jonas Schievink
7fc4ba000e Capture memory usage metrics 2020-12-11 17:30:32 +01:00
Jonas Schievink
75543d8ca1
Revert "Fix memory usage metrics" 2020-12-11 16:50:17 +01:00
Jonas Schievink
777d8dca26 Fix memory usage metrics 2020-12-11 15:47:40 +01:00
Aleksey Kladov
0890512e1c Include config into the manual 2020-12-09 15:31:10 +03:00
Jérémy
019ad25939 Update usage string to include code-exploration client. 2020-12-08 20:28:32 +01:00
Jérémy
7cf2c0d46f Add client install support for code-exploration build. 2020-12-08 19:23:25 +01:00
kjeremy
d18acb0f65 Update expect-test and remove outdated license 2020-12-07 14:19:10 -05:00
kjeremy
4e73c8f608 cargo update and add new license 2020-11-17 09:39:25 -05:00
Aleksey Kladov
75d2075665 Revert "Upgrade version of npms lockfile"
This reverts commit 3d559afc11.

VS Code uses nodejs 12 still, so its better to stick to the format it
understands.
2020-11-13 16:17:52 +01:00
Aleksey Kladov
3d559afc11 Upgrade version of npms lockfile 2020-11-12 20:39:16 +01:00
Aleksey Kladov
29bf6bed9b More consistent naming 2020-11-09 13:07:18 +01:00
bors[bot]
dac7060382
Merge #6476
6476: Add missing AssocItems in add_custom_impl assist r=matklad a=Veykril

```rust
use std::fmt;

#[derive(Debu<|>g)]
struct Foo {
    bar: String,
}
```
->
```rust
use std::fmt;

struct Foo {
    bar: String,
}

impl fmt::Debug for Foo {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        ${0:todo!()}
    }
}
```

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-11-07 18:21:11 +00:00
Aleksey Kladov
5ba4f949c2 Kill RAW_ literals
Syntactically, they are indistinguishable from non-raw versions, so it
doesn't make sense to separate then *at the syntax* level.
2020-11-06 22:23:14 +01:00
Aleksey Kladov
3820b26a93 Generate token for ints and floats 2020-11-06 18:19:24 +01:00
Lukas Wirth
19443c1fa3 Add missing AssocItems in add_custom_impl assist 2020-11-05 23:41:46 +01:00
Aleksey Kladov
b610118453 Deny unreachable-pub
It's very useful when `pub` is equivalent to "this is crate's public
API", let's enforce this!

Ideally, we should enforce it for local `cargo test`, and only during
CI, but that needs https://github.com/rust-lang/cargo/issues/5034.
2020-11-02 14:07:08 +01:00
Igor Aleksanov
19c1067202 Reorganize completions structure 2020-10-25 10:59:15 +03:00
bors[bot]
0833484914
Merge #6259
6259: allow xtask install --client[=CLIENT] to specify client r=Emilgardis a=Emilgardis



Co-authored-by: Emil Gardström <emil.gardstrom@gmail.com>
2020-10-20 20:49:17 +00:00
Emil Gardström
c5b1c36b2b rename flag --client-code to --client on xtask install 2020-10-20 22:37:02 +02:00
Benjamin Coenen
aa031e91f4 add completions for clippy lint in attributes
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-20 21:29:31 +02:00
Igor Aleksanov
b8a74e0370 Add generated_diagnostic.adoc to the release.rs and smoke_test_docs_generation 2020-10-19 21:07:40 +03:00
Igor Aleksanov
aa9be4d523 Use xshell::read_file instead of fs::read_to_string 2020-10-19 20:58:32 +03:00
Igor Aleksanov
52b19c39e8 Create xtask module to generate diagnostics docs 2020-10-19 20:55:16 +03:00
Igor Aleksanov
9e7c952bbd Extract call_info and completion into separate crates 2020-10-18 13:09:00 +03:00
Emil Gardström
d0bb051ef7 allow xtask install --client-code[=CLIENT] to specify client 2020-10-17 10:28:12 +02:00
Aleksey Kladov
49a90d4c31 Switch from not_bash to xshell 2020-10-17 02:42:42 +02:00
Aleksey Kladov
c7a079d32d Improve compile time a tiny bit 2020-10-16 19:47:47 +02:00
Aleksey Kladov
d852189e56 Add reminder to update lsp-extensions.md 2020-10-14 13:30:06 +02:00
kjeremy
13bb0404a8 Bump rustc_lexer, cfg-if to 1.0 and add new license to check 2020-10-08 10:39:02 -04:00
bors[bot]
e6a05e6566
Merge #5651
5651: Add track_env_var to the proc macro server r=kjeremy a=lnicola

See https://github.com/rust-lang/rust/pull/74653.

Fixes #6054.
Fixes #5640, maybe.

Should be merged when 1.47 is released.

Proc macros still don't work for me, but it no longer crashes.



Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-10-08 14:27:30 +00:00
Laurențiu Nicola
3d169bd3f4 Add track_env_var to the proc macro server 2020-10-08 17:06:20 +03:00
Aleksey Kladov
c32fb96c33 Smoke test docs generation 2020-10-06 15:17:16 +02:00
Aleksey Kladov
bff812ddfe Fix feature name 2020-10-05 20:25:11 +02:00
Jonas Schievink
61a8d71724 Add GitHub Sponsors link to blog post template 2020-09-14 15:56:30 +02:00
kjeremy
11758d518a Up proc-macro2 to 1.20
This changes the way Display is implemented
2020-09-03 17:40:12 -04:00