aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Use `const` instead of `let`Jonas Schievink2021-03-271-1/+1
|
* Snippet support in extract_type_aliasJonas Schievink2021-03-272-15/+26
|
* Fix handling of multi-cursor snippetsJonas Schievink2021-03-271-5/+5
| | | | | This allows one snippet per TextEdit, multiple in the same TextEdit are still broken
* Implement "Extract type alias" assistJonas Schievink2021-03-263-0/+186
|
* Merge #8056bors[bot]2021-03-269-43/+124
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8056: completion relevance consider if types can be unified r=JoshMcguigan a=JoshMcguigan This PR improves completion relevance scoring for generic types, in cases where the types could unify. ### Before ![pre-could-unify](https://user-images.githubusercontent.com/22216761/111338556-46d94e80-8634-11eb-9936-2b20eb9e6756.png) ### After ![post-could-unify](https://user-images.githubusercontent.com/22216761/111338598-4e005c80-8634-11eb-92e0-69c2c1cda6fc.png) changelog feature improve completions Co-authored-by: Josh Mcguigan <[email protected]>
| * completion relevance distinguish between exact type match and could unifyJosh Mcguigan2021-03-265-44/+81
| |
| * completion relevance consider if types can be unifiedJosh Mcguigan2021-03-265-3/+47
|/
* Merge #8206bors[bot]2021-03-261-1/+7
|\ | | | | | | | | | | | | | | 8206: Ignore main functions not in root module r=Veykril a=ivan770 Closes #8195 Co-authored-by: ivan770 <[email protected]>
| * Ignore main functions not in root moduleivan7702021-03-261-1/+7
|/
* Merge #8200bors[bot]2021-03-258-23/+22
|\ | | | | | | | | | | | | | | | | | | 8200: Use arrayvec 0.6 r=kjeremy a=lnicola Closes #8198 changelog skip Co-authored-by: Laurențiu Nicola <[email protected]>
| * Use more std::array::IntoIterLaurențiu Nicola2021-03-251-4/+3
| |
| * Use arrayvec 0.6Laurențiu Nicola2021-03-258-20/+20
|/
* Merge #8197bors[bot]2021-03-251-1/+1
|\ | | | | | | | | | | | | | | 8197: Rust 1.51 r=lnicola a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * Rust 1.51kjeremy2021-03-251-1/+1
|/
* Merge #8193bors[bot]2021-03-251-1/+1
|\ | | | | | | | | | | | | | | 8193: Fix manual description for rust_project.json r=Veykril a=tweksteen Co-authored-by: Thiébaud Weksteen <[email protected]>
| * Fix manual description for rust_project.jsonThiébaud Weksteen2021-03-251-1/+1
| |
* | Merge #8194bors[bot]2021-03-251-1/+1
|\ \ | |/ |/| | | | | | | | | | | 8194: Make a full clone in `release.yaml` to bring in tags r=lnicola a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * Make a full clone in release.yamlLaurențiu Nicola2021-03-251-1/+1
|/
* Merge #7907bors[bot]2021-03-2410-37/+250
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7907: Autoderef with visibility r=cynecx a=cynecx Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7841. I am not sure about the general approach here. Right now this simply tries to check whether the autoderef candidate is reachable from the current module. ~~However this doesn't exactly work with traits (see the `tests::macros::infer_derive_clone_in_core` test, which fails right now).~~ see comment below Refs: - `rustc_typeck` checking fields: https://github.com/rust-lang/rust/blob/66ec64ccf31883cd2c28d045912a76179c0c6ed2/compiler/rustc_typeck/src/check/expr.rs#L1610 r? @flodiebold Co-authored-by: cynecx <[email protected]>
| * hir: don't use the self module as visible_from in iterate_method_candidatescynecx2021-03-241-6/+1
| |
| * hir_ty: don't call write_field_resolution when field candidate isn't visiblecynecx2021-03-241-6/+4
| |
| * hir_def: move visibility queries from hir_ty to hir_defcynecx2021-03-245-35/+43
| |
| * hir_ty: add coverage testing for autoderef_visibility_method testcynecx2021-03-202-0/+2
| |
| * hir_ty: fix test by removing trailing whitespacecynecx2021-03-201-24/+23
| |
| * hir_ty: iterate_method_candidates_for_self_ty pass `visible_from_module` ↵cynecx2021-03-201-1/+6
| | | | | | | | down to `iterate_inherent_methods`
| * hir_ty: fix visibility in infer_inherent_method testcynecx2021-03-201-16/+16
| |
| * hir_ty: introduce visible_from_module param into method resolutioncynecx2021-03-204-4/+40
| |
| * hir_ty: check field visibility while iterating through autoderef candidatescynecx2021-03-201-14/+36
| |
| * hir_ty: add field_visibilities and fn_visibility queriescynecx2021-03-202-4/+33
| |
| * hir_ty: add tests around autoderef with visibility checkingcynecx2021-03-201-0/+119
| |
| * hir_ty: fix tests by making required methods publiccynecx2021-03-202-4/+4
| |
* | Merge #8190bors[bot]2021-03-244-18/+42
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8190: Fix chalk_ir assertion r=flodiebold a=flodiebold Fixes #8150. I implemented a validator that catches this in the tests, but it'd need to get merged in Chalk first. Co-authored-by: Florian Diebold <[email protected]>
| * | Fix chalk_ir assertionFlorian Diebold2021-03-244-18/+42
| | | | | | | | | | | | Fixes #8150.
* | | Merge #8189bors[bot]2021-03-241-0/+4
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 8189: Document unlinked-file diagnostic r=jonas-schievink a=jonas-schievink fixes https://github.com/rust-analyzer/rust-analyzer/issues/8188 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Document unlinked-file diagnosticJonas Schievink2021-03-241-0/+4
|/ /
* | Merge #8187bors[bot]2021-03-241-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | 8187: Sweep the new TraitEnvironmentQuery r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Sweep the new TraitEnvironmentQueryJonas Schievink2021-03-241-0/+1
|/ /
* | Merge #8184bors[bot]2021-03-242-48/+48
|\ \ | | | | | | | | | | | | | | | | | | | | | 8184: refine comment style of tests r=Veykril a=hi-rustin Fix the comment style issues, it's in tests but maybe it's a little better to change it to this. Co-authored-by: hi-rustin <[email protected]>
| * | refine comment style of testshi-rustin2021-03-242-48/+48
|/ /
* | Merge #8168bors[bot]2021-03-241-7/+70
|\ \ | | | | | | | | | | | | | | | | | | | | | 8168: correct `convert to guard return` let_stmt r=Veykril a=hi-rustin close https://github.com/rust-analyzer/rust-analyzer/issues/8074 Co-authored-by: hi-rustin <[email protected]>
| * | correct `convert to guard return` let_stmthi-rustin2021-03-241-7/+70
| | | | | | | | | | | | | | | | | | | | | | | | fix fix add check
* | | Merge #8183bors[bot]2021-03-241-8/+38
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8183: Fix missing command error with macros r=Veykril a=brandondong **Reproduction:** 1. Define a struct through a macro (can be via `macro_rules`, proc macro, or `include!()`). 2. !!MISSING: command!! annotation appears. Clicking on it results in an error message. No matter where the macro is called/defined, the annotation is always at the start of the file. ![image](https://user-images.githubusercontent.com/13722457/112268785-bce14500-8c34-11eb-9a23-bafd63ffd6ef.png) **Cause:** - For struct `A`, a `HasImpls` annotation is added just like for struct `B`. Unlike `B`, the file id for `A` is not the file we are adding annotations to but a macro file. - The resolving step of the code lens does not succeed. **Fix:** - Check that the files match before computing offsets and adding `HasImpls`/`HasReferences` annotations. Co-authored-by: Brandon <[email protected]>
| * | | Clean up implementationBrandon2021-03-242-14/+8
| | | |
| * | | Fix MISSING: command error with macrosBrandon2021-03-242-8/+44
| | | |
* | | | Merge #8177bors[bot]2021-03-243-6/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8177: Limit the hints size by default r=Veykril a=SomeoneToIgnore Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8175 Fixes https://github.com/rust-analyzer/rust-analyzer/issues/3138 Co-authored-by: Kirill Bulatov <[email protected]>
| * | | | Bump the default hint lengthKirill Bulatov2021-03-233-3/+3
| | | | |
| * | | | Limit the hints size by defaultKirill Bulatov2021-03-233-6/+6
| | | | |
* | | | | Merge #8182bors[bot]2021-03-241-4/+26
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8182: Trim down IPC json size r=edwin0cheng a=edwin0cheng This PR try to trim down the json of proc macro IPC by ignore token id if it equals to `TokenId::unspecifed`. Test by following commands: ```bash $ git clone https://github.com/gluon-lang/lsp-types.git $ export RA_LOG="proc_macro_api=debug" $ rust-analyzer -q analysis-stats --load-output-dirs --with-proc-macro . 2> debug.log $ cat debug.log | awk '/^\[DEBUG proc_macro_api::msg\] >/ {print substr($0,31)}' >expand.log $ stat -c "%s" expand.log ``` Before: 37576726 After: 28551718 So it trimed down 75%. bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | | | Trim down IPC json sizeEdwin Cheng2021-03-241-4/+26
|/ / / /
* | | | Merge #8159bors[bot]2021-03-234-15/+38
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8159: Ignore proc-macro stdout to prevent IPC crash r=edwin0cheng a=edwin0cheng fixes #7954 r? @flodiebold Co-authored-by: Edwin Cheng <[email protected]>