aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Stop mixing Result and Option with ? in inline_local_variableScott McMurray2021-02-201-4/+4
| | | | Depending on the discussion in RFC#3058 this might not end up being necessary, but I think it's a reasonable change regardless.
* Merge #7732bors[bot]2021-02-206-37/+45
|\ | | | | | | | | | | | | | | | | | | | | | | 7732: Don't lower TypeBound::Lifetime as GenericPredicate::Error r=flodiebold a=Veykril Basically we just discard the typebound for now instead when lowering to `GenericPredicate`. I think this shouldn't have any other side effects? Fixes #7683(hopefully for real this time) I also played around with introducing `GenericPredicate::LifetimeOutlives` and `GenericPredicate::TypeOutlives`(see https://github.com/Veykril/rust-analyzer/commit/b9d69048451a5f2e9c5a72c800369bbeef36fdcf) but that won't fix this issue(at least not for now) due to lifetime predicate mismatches when resolving methods so I figure this is a good way to fix it for now. Co-authored-by: Lukas Wirth <[email protected]>
| * Don't write trailing whitespace when formatting empty GenericPredicatesLukas Wirth2021-02-203-14/+24
| |
| * Don't lower TypeBound::Lifetime as GenericPredicate::ErrorLukas Wirth2021-02-204-25/+23
| |
* | Merge #7733bors[bot]2021-02-2011-20/+124
|\ \ | | | | | | | | | | | | | | | | | | | | | 7733: Update some crates r=kjeremy a=kjeremy Co-authored-by: Jeremy Kolb <[email protected]>
| * | Update testsJeremy Kolb2021-02-2010-0/+104
| | |
| * | Update some cratesJeremy Kolb2021-02-201-20/+20
|/ /
* | Merge #7729bors[bot]2021-02-201-2/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | 7729: Try to detect musl distros in the Code extension r=andylizi a=lnicola Fixes https://github.com/rust-analyzer/rust-analyzer/pull/7658#issuecomment-782701138 Co-authored-by: Laurențiu Nicola <[email protected]>
| * | Try to detect musl distros in the Code extensionLaurențiu Nicola2021-02-201-2/+12
| | |
* | | Merge #7730bors[bot]2021-02-201-2/+45
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 7730: Fix #7712 retain visibility extracting mod to file r=lnicola a=mattyhall Co-authored-by: Matt Hall <[email protected]>
| * | Use format_to! to make logic a bit nicerMatt Hall2021-02-201-6/+8
| | |
| * | Fix #7712 retain visibility extracting mod to fileMatt Hall2021-02-201-2/+43
|/ /
* | Merge #7727bors[bot]2021-02-201-3/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7727: Remove documentation of obsolete extend selection command r=matklad a=lnicola Closes #7454 This is available in LSP as `textDocument/selectionRange` and no longer exists as a stand-alone command, so we shouldn't mention it in the manual because it's confusing (it doesn't appear in `package.json`). Co-authored-by: Laurențiu Nicola <[email protected]>
| * | Remove documentation of obsolete extend selection commandLaurențiu Nicola2021-02-201-3/+5
|/ /
* | Merge #7726bors[bot]2021-02-201-0/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | 7726: feat(completion): add doc(hidden) completion for attributes r=lnicola a=bnjjj Co-authored-by: Benjamin Coenen <[email protected]>
| * | feat(completion): add doc(hidden) completion for attributesBenjamin Coenen2021-02-201-0/+3
| |/ | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | Merge #7725bors[bot]2021-02-202-1/+33
|\ \ | |/ |/| | | | | | | | | | | 7725: fix(assist): display where predicates when we want to generate impl r=lnicola a=bnjjj close #7721 Co-authored-by: Benjamin Coenen <[email protected]>
| * fix(assist): display where predicates when we want to generate implBenjamin Coenen2021-02-202-1/+33
|/ | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Merge #7724bors[bot]2021-02-203-4/+94
|\ | | | | | | | | | | | | | | 7724: Consider import prefix config settings during flyimports r=SomeoneToIgnore a=SomeoneToIgnore Fixes #7666 Co-authored-by: Kirill Bulatov <[email protected]>
| * Consider import prefix config settings during flyimportsKirill Bulatov2021-02-203-4/+94
|/
* Merge #7723bors[bot]2021-02-202-6/+6
|\ | | | | | | | | | | | | | | | | | | | | 7723: Fix typos r=lnicola a=azzamsa I have checked all the documents inside `docs/` using `grammarly.com`. There are many suggestions in each document (some of them are false positive). I choose to fix the typos only to avoid lengthy grammar discussions. I would like to suggest to the maintainers to take a look. It is worth it. IMHO, it better to put the article into `grammarly.com` or `languagetool.org` before pushing :). Co-authored-by: azzamsa <[email protected]>
| * Fix typosazzamsa2021-02-202-6/+6
| |
* | Merge #7722bors[bot]2021-02-202-4/+37
|\ \ | |/ |/| | | | | | | | | | | 7722: Fix incorrect missing field diagnostic with box patterns r=Veykril a=lnicola Closes #7711 Co-authored-by: Laurențiu Nicola <[email protected]>
| * Add testLaurențiu Nicola2021-02-201-0/+24
| |
| * Fix incorrect missing field diagnostic with box patternsLaurențiu Nicola2021-02-201-4/+13
|/
* Merge #7707bors[bot]2021-02-1737-32/+33
|\ | | | | | | | | | | | | | | | | 7707: rename completion -> ide_completion r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * rename completion -> ide_completionAleksey Kladov2021-02-1737-32/+33
|/ | | | We don't have completion-related PRs in flight, so lets do it
* Merge #7706bors[bot]2021-02-173-28/+26
|\ | | | | | | | | | | | | | | 7706: Revert "Replace usage of ast::NameOrNameRef with ast::NameLike" r=Veykril a=Veykril This reverts commit e1dbf43cf85f84c3a7e40f9731fc1f7ac96f8979. Co-authored-by: Lukas Wirth <[email protected]>
| * Revert "Replace usage of ast::NameOrNameRef with ast::NameLike"Lukas Wirth2021-02-173-28/+26
|/ | | | This reverts commit e1dbf43cf85f84c3a7e40f9731fc1f7ac96f8979.
* Merge #7699bors[bot]2021-02-176-115/+118
|\ | | | | | | | | | | | | | | 7699: Implement ast::AstNode for NameLike and move it to node_ext r=matklad a=Veykril With this `search`(and 2 other modules) don't necessarily go through 3 calls of `find_node_at_offset_with_descend` to find the correct node. Also makes the code that searches for NameLikes a bit easier on the eyes imo, though that can be fixed with just a helper function as well so its not that relevant. Co-authored-by: Lukas Wirth <[email protected]>
| * Replace usage of ast::NameOrNameRef with ast::NameLikeLukas Wirth2021-02-173-26/+28
| |
| * Implement ast::AstNode for NameLike and move it to node_extLukas Wirth2021-02-165-101/+102
| |
* | Merge #7705bors[bot]2021-02-171-2/+38
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7705: Show hover info of the definition of ConstReference patterns instead of its type r=Veykril a=Veykril Closes #7671 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | Show hover info of the definition of ConstReference patterns instead of its typeLukas Wirth2021-02-171-2/+38
| |/
* | Merge #7704bors[bot]2021-02-171-0/+11
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7704: Avoid transmitting unchanged diagnostics r=matklad a=michalmuskala Reading through the code for diagnostics and observing debug logs, I noticed that diagnostics are transmitted after every change for every opened file, even if they haven't changed (especially visible for files with no diagnostics). This change avoids marking files as "changed" if diagnostics are the same to what was already sent before. This will only work if diagnostics are always produced in the same order, but from my limited testing it seems this is the case. Co-authored-by: Michał Muskała <[email protected]>
| * | Avoid transmitting unchanged diagnosticsMichał Muskała2021-02-171-0/+11
|/ / | | | | | | | | | | | | | | | | | | Reading through the code for diagnostics and observing debug logs, I noticed that diagnostics are transmitted after every change for every opened file, even if they haven't changed (especially visible for files with no diagnostics). This change avoids marking files as "changed" if diagnostics are the same to what was already sent before. This will only work if diagnostics are always produced in the same order, but from my limited testing it seems this is the case.
* | Merge #7701bors[bot]2021-02-172-31/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | 7701: Remove semantic tokens workaround r=SomeoneToIgnore a=kjeremy Let's try this again. Co-authored-by: kjeremy <[email protected]>
| * | Remove Semantic Tokens flicker workaroundkjeremy2021-02-161-17/+0
| | | | | | | | | | | | | | | https://github.com/microsoft/vscode-languageserver-node/issues/576 has been closed with the latest vscode-languageclient release.
| * | vscode-languageclient 7.1.0-next.2kjeremy2021-02-161-14/+14
| | |
* | | Merge #7703bors[bot]2021-02-171-16/+22
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7703: Allow comments between newlines in chaining hints r=Veykril a=unratito Currently, chaining hints are not generated if there are comments between newlines, which is a very common pattern: ```rust let vec = (0..10) // Multiply by 2 .map(|x| x * 2) // Add 3 .map(|x| x + 3) .collect::<Vec<i32>>(); ``` Besides, it seems a bit weird that this piece of code generates a chaining hint: ```rust let vec = (0..10) .collect::<Vec<i32>>(); ``` But this one doesn't: ```rust let vec = (0..10) // This is a comment .collect::<Vec<i32>>(); ``` Co-authored-by: Paco Soberón <[email protected]>
| * | | Allow comments between newlines in chaining hintsPaco Soberón2021-02-161-16/+22
| |/ /
* | | Merge #7702bors[bot]2021-02-171-1/+2
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 7702: Remove use of deprecated `std::collections::Bound` r=Veykril a=bstrie `std::collections::Bound` has been deprecated since Rust 1.26, but due to a bug (https://github.com/rust-lang/rust/issues/82080) it never triggered a visible deprecation warning. Fixing this is being done in https://github.com/rust-lang/rust/pull/82122 , but landing that requires rustc-analyzer to build without triggering any deprecation warnings (https://github.com/rust-lang-ci/rust/runs/1911884006#step:24:19361). Co-authored-by: bstrie <[email protected]>
| * | Remove use of deprecated `std::collections::Bound`bstrie2021-02-161-1/+2
|/ /
* | Merge #7700bors[bot]2021-02-161-10/+3270
|\ \ | | | | | | | | | | | | | | | | | | | | | 7700: Use npm 7.x package-lock.json r=lnicola a=kjeremy Supposedly backwards compatible Co-authored-by: kjeremy <[email protected]>
| * | Use npm 7.x package-lock.jsonkjeremy2021-02-161-10/+3270
|/ /
* | Merge #7690bors[bot]2021-02-166-41/+50
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7690: Extract `fn load_workspace(…)` from `fn load_cargo(…)` r=matklad a=regexident Unfortunately in https://github.com/rust-analyzer/rust-analyzer/pull/7595 I forgot to `pub use` (rather than just `use`) the newly introduced `LoadCargoConfig`. So this PR fixes this now. It also: - splits up `fn load_cargo` into a "workspace loading" and a "project loading" phase - adds a `progress: &dyn Fn(String)` to allow third-parties to provide CLI progress updates, too The motivation behind both of these is the fact that rust-analyzer currently does not support caching. As such any third-party making use of `ra_ap_…` needs to providing a caching layer itself. Unlike for rust-analyzer itself however a common use-pattern of third-parties is to analyze a specific target (`--lib`/`--bin <BIN>`/…) from a specific package (`--package`). The targets/packages of a crate can be obtained via `ProjectWorkspace::load(…)`, which currently is performed inside of `fn load_cargo`, effectively making the returned `ProjectWorkspace` inaccessible to the outer caller. With this information one can then provide early error handling via CLI (in case of ambiguities or invalid arguments, etc), instead of `fn load_cargo` failing with a possibly obscure error message. It also allows for annotating the persisted caches with its specific associated package/target selector and short-circuit quickly if a matching cache is found on disk, significantly cutting load times. Before: ```rust pub struct LoadCargoConfig { pub cargo_config: &CargoConfig, pub load_out_dirs_from_check: bool, pub with_proc_macro: bool, } pub fn load_cargo( root: &Path, config: &LoadCargoConfig ) -> Result<(AnalysisHost, vfs::Vfs)> { // ... } ``` After: ```rust pub fn load_workspace( root: &Path, config: &CargoConfig, progress: &dyn Fn(String), ) -> Result<ProjectWorkspace> { // ... } pub struct LoadCargoConfig { pub load_out_dirs_from_check: bool, pub with_proc_macro: bool, } pub fn load_cargo( ws: ProjectWorkspace, config: &LoadCargoConfig, progress: &dyn Fn(String), ) -> Result<(AnalysisHost, vfs::Vfs)> { // ... } ``` Co-authored-by: Vincent Esche <[email protected]>
| * Split `pub fn cargo_load` into `pub fn load_workspace_at` and `pub fn ↵Vincent Esche2021-02-166-41/+50
| | | | | | | | load_workspace`
* | Merge #7697bors[bot]2021-02-162-4/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7697: Use `cfg(target_arch)` instead of a Cargo feature r=jonas-schievink a=jonas-schievink Not that WASM works right now anyways... bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Use `cfg(target_arch)` instead of a Cargo featureJonas Schievink2021-02-162-4/+1
|/ / | | | | | | Not that WASM works right now anyways...
* | Merge #7657bors[bot]2021-02-1616-146/+221
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7657: utf8 r=matklad a=matklad - Prepare for utf-8 offsets - reduce code duplication in tests - Make utf8 default, implement utf16 in terms of it - Make it easy to add additional context for offset conversion - Implement utf8 offsets closes #7453 Co-authored-by: Aleksey Kladov <[email protected]>