aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add diagnostic for break outside of loopFlorian Diebold2020-05-084-1/+62
|
* Use matches!Florian Diebold2020-05-081-4/+1
|
* Handle break somewhat betterFlorian Diebold2020-05-083-3/+105
| | | | | Still no break-with-value or labels, but at least we know that `loop { break; }` doesn't diverge.
* Implement better handling of divergenceFlorian Diebold2020-05-087-23/+200
| | | | | | | | Divergence here means that for some reason, the end of a block will not be reached. We tried to model this just using the never type, but that doesn't work fully (e.g. in `let x = { loop {}; "foo" };` x should still have type `&str`); so this introduces a `diverges` flag that the type checker keeps track of, like rustc does.
* Merge #4376bors[bot]2020-05-083-10/+11
|\ | | | | | | | | | | | | | | 4376: Fix type of byte literals r=matklad a=flodiebold They're `&[u8; N]`, not `&[u8]` (see #4374). Co-authored-by: Florian Diebold <[email protected]>
| * Fix type of byte literalsFlorian Diebold2020-05-083-10/+11
|/ | | | They're `&[u8; N]`, not `&[u8]` (see #4374).
* Merge #4375bors[bot]2020-05-0810-141/+108
|\ | | | | | | | | | | | | | | | | 4375: Cleanup toolchain handling r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * CleanupAleksey Kladov2020-05-087-100/+64
| |
| * CleanupAleksey Kladov2020-05-081-27/+28
| |
| * Rename ra_env -> ra_toolchainAleksey Kladov2020-05-089-21/+23
|/
* Merge #4329bors[bot]2020-05-0813-63/+183
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4329: Look for `cargo`, `rustc`, and `rustup` in standard installation path r=matklad a=cdisselkoen Discussed in #3118. This is approximately a 90% fix for the issue described there. This PR creates a new crate `ra_env` with a function `get_path_for_executable()`; see docs there. `get_path_for_executable()` improves and generalizes the function `cargo_binary()` which was previously duplicated in the `ra_project_model` and `ra_flycheck` crates. (Both of those crates now depend on the new `ra_env` crate.) The new function checks (e.g.) `$CARGO` and `$PATH`, but also falls back on `~/.cargo/bin` manually before erroring out. This should allow most users to not have to worry about setting the `$CARGO` or `$PATH` variables for VSCode, which can be difficult e.g. on macOS as discussed in #3118. I've attempted to replace all calls to `cargo`, `rustc`, and `rustup` in rust-analyzer with appropriate invocations of `get_path_for_executable()`; I don't think I've missed any in Rust code, but there is at least one invocation in TypeScript code which I haven't fixed. (I'm not sure whether it's affected by the same problem or not.) https://github.com/rust-analyzer/rust-analyzer/blob/a4778ddb7a00f552a8e653bbf56ae9fd69cfe1d3/editors/code/src/cargo.ts#L79 I'm sure this PR could be improved a bunch, so I'm happy to take feedback/suggestions on how to solve this problem better, or just bikeshedding variable/function/crate names etc. cc @Veetaha Fixes #3118. Co-authored-by: Craig Disselkoen <[email protected]> Co-authored-by: veetaha <[email protected]>
| * use home crate instead of dirsCraig Disselkoen2020-05-073-78/+13
| |
| * simplify by using bail! macroCraig Disselkoen2020-05-061-4/+7
| |
| * cargo fmtCraig Disselkoen2020-05-061-1/+5
| |
| * return a PathBuf instead of StringCraig Disselkoen2020-05-062-8/+9
| |
| * simplify some code using early returnsCraig Disselkoen2020-05-061-24/+17
| |
| * Fix cargo not found on macos bug at vscode extension sideveetaha2020-05-063-7/+48
| |
| * Preliminary refactoring of cargo.tsveetaha2020-05-062-33/+19
| |
| * add module-level docs so that tests passCraig Disselkoen2020-05-061-0/+4
| |
| * cargo fmtCraig Disselkoen2020-05-061-1/+4
| |
| * pull function out into new crate ra_env; use in ra_flycheck as wellCraig Disselkoen2020-05-069-16/+31
| |
| * more generic, find rustc as wellCraig Disselkoen2020-05-064-54/+71
| |
| * ra_project_model: look for Cargo in more placesCraig Disselkoen2020-05-063-10/+128
| | | | | | | | See #3118
* | Merge #4372bors[bot]2020-05-083-7/+13
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4372: Add master config for inlayHints to make disabling easy r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Add master config for inlayHints to make disabling easyAleksey Kladov2020-05-083-7/+13
|/ /
* | Merge #4370bors[bot]2020-05-082-18/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4370: Move feature desugaring to the right abstraction layer r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Move feature desugaring to the right abstraction layerAleksey Kladov2020-05-082-18/+12
|/ /
* | Merge #4367bors[bot]2020-05-071-16/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | 4367: Update deps r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | Update depskjeremy2020-05-071-16/+16
|/ /
* | Merge #4296bors[bot]2020-05-074-5/+130
|\ \ | | | | | | | | | | | | | | | | | | | | | 4296: Support cargo:rustc-cfg in build.rs r=matklad a=robojumper Fixes #4238. Co-authored-by: robojumper <[email protected]>
| * | Assume cargo_metadata uses String for cfgs soonrobojumper2020-05-052-10/+9
| | |
| * | Merge heavy testsrobojumper2020-05-051-134/+105
| | |
| * | Support build.rs cargo:rustc-cfgrobojumper2020-05-044-3/+158
| | |
* | | Merge #4362bors[bot]2020-05-071-2/+24
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4362: do not show runnables for main function outside of a binary target r=matklad a=bnjjj close #4356 Co-authored-by: Benjamin Coenen <[email protected]>
| * | | do not show runnables for main function outside of a binary target #4356Benjamin Coenen2020-05-071-2/+24
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | Merge #4365bors[bot]2020-05-071-0/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4365: Use the correct color for structs r=matklad a=matklad This works around https://github.com/microsoft/vscode/issues/97162 bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Use the correct color for structsAleksey Kladov2020-05-071-0/+3
| | | | | | | | | | | | | | | | | | | | This works around https://github.com/microsoft/vscode/issues/97162
* | | | | Merge #4346bors[bot]2020-05-072-2/+70
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4346: Fix rename of enum variant visible from module r=matklad a=montekki Probably fixes #4237 It looks like the ref is found correctly in this case but it's visibility is not correctly determined. I took a stab at fixing that by adding an implementation of `HasVisibility` for `EnumVariant` so it works more or less the same way it does for struct fields. In other words, the `search_range` here does not contain the ref since it's not considered visible: https://github.com/rust-analyzer/rust-analyzer/blob/efd8e34c396f1524623a495e47111f1047cf2879/crates/ra_ide_db/src/search.rs#L209-L214 Before that I tried to populate `ItemScope` with visible enum variants but that ended up with breaking tests all over the place and also it looked illogical in the end: `ItemScope` is not populated with, say, public struct fields and the same should be true for `enum` variants. I've added two more or less identical tests: one for the case with a struct field rename and one for enum variant rename; the test for struct should probably be removed and the names should be changed. Co-authored-by: Fedor Sakharov <[email protected]>
| * | | | Remove HasVisibility implementationFedor Sakharov2020-05-073-12/+6
| | | | |
| * | | | Fix rename of enum variant visible from moduleFedor Sakharov2020-05-064-2/+76
| | | | |
* | | | | Merge #4364bors[bot]2020-05-078-70/+69
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4364: Touch up assists public API r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | SimplifyAleksey Kladov2020-05-075-6/+5
| | | | | |
| * | | | | Nicer APIAleksey Kladov2020-05-073-42/+42
| | | | | |
| * | | | | Rename AssitLabel -> AssistAleksey Kladov2020-05-074-24/+24
|/ / / / /
* | | | | Merge #4350bors[bot]2020-05-0738-593/+521
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4350: Refactor assists API to be more convenient for adding new assists r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | Refactor assists API to be more convenient for adding new assistsAleksey Kladov2020-05-0738-593/+521
|/ / / / / | | | | | | | | | | | | | | | It now duplicates completion API in its shape.
* | | | | Merge #4359bors[bot]2020-05-071-1/+7
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4359: Fix panic in FunctionSignature r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Fix panic in FunctionSignatureAleksey Kladov2020-05-071-1/+7
|/ / / /
* | | | Merge #4333bors[bot]2020-05-061-15/+8
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4333: Update Arch Linux and ALE install instructions r=matklad a=polyzen Package has been added to the Arch repos: https://www.archlinux.org/packages/community/x86_64/rust-analyzer/ ALE merged rust-analyzer support: https://github.com/dense-analysis/ale/commit/70005134e5b2d40d176ee5b851ac64a296b22201 Co-authored-by: Daniel M. Capella <[email protected]>
| * | | | Update Arch Linux and ALE install instructionsDaniel M. Capella2020-05-051-15/+8
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | Package has been added to the Arch repos: https://www.archlinux.org/packages/community/x86_64/rust-analyzer/ ALE merged rust-analyzer support: https://github.com/dense-analysis/ale/commit/70005134e5b2d40d176ee5b851ac64a296b22201