aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #4947bors[bot]2020-06-207-59/+90
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4947: Replace `impls_in_trait` query with smarter use of `CrateImplDefs` r=matklad a=jonas-schievink `impls_in_trait` was allocating a whopping ~400 MB of RAM when running analysis-stats on r-a itself. Remove it, instead adding a query that computes a summary `CrateImplDefs` map for all transitive dependencies. This can probably still be made more efficient, but this already reduces the peak memory usage by 25% without much performance impact on analysis-stats. **Before**: ``` Total: 34.962107188s, 2083mb allocated 2141mb resident 422mb ImplsForTraitQuery (deps) 250mb CrateDefMapQueryQuery 147mb MacroArgQuery 140mb TraitSolveQuery (deps) 68mb InferQueryQuery (deps) 62mb ImplDatumQuery (deps) ``` **After**: ``` Total: 35.261100358s, 1520mb allocated 1569mb resident 250mb CrateDefMapQueryQuery 147mb MacroArgQuery 144mb TraitSolveQuery (deps) 68mb InferQueryQuery (deps) 61mb ImplDatumQuery (deps) 45mb BodyQuery 45mb ImplDatumQuery ``` Co-authored-by: Jonas Schievink <[email protected]>
| * Recursively compute impl setsJonas Schievink2020-06-191-13/+26
| |
| * Add new query to statsJonas Schievink2020-06-192-4/+5
| |
| * Don't include downstream crate in queryJonas Schievink2020-06-191-1/+2
| |
| * Replace `impls_in_trait` with `CrateImplDefs`Jonas Schievink2020-06-197-63/+79
| |
* | Move ReqQueue to lsp-serverAleksey Kladov2020-06-206-190/+107
| |
* | Merge #4961bors[bot]2020-06-204-170/+188
|\ \ | | | | | | | | | | | | | | | | | | | | | 4961: Centralize handing of in-flight requests r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | Centralize handing of in-flight requestsAleksey Kladov2020-06-204-170/+188
| | |
* | | Merge #4958bors[bot]2020-06-204-24/+312
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 4958: Infer FnSig via Fn traits r=flodiebold a=adamrk Addresses https://github.com/rust-analyzer/rust-analyzer/issues/4481. When inferring types check if the callee implements one of the builtin `Fn` traits. Also autoderef the callee before trying to figure out it's `FnSig`. Co-authored-by: adamrk <[email protected]>
| * | Push obligation instead of matching on solutionadamrk2020-06-202-45/+40
| | |
| * | Get Output assoc type by nameadamrk2020-06-201-13/+3
| | |
| * | Add test for dyn Fn Outputadamrk2020-06-201-0/+68
| | |
| * | move tests to ra_hir_tyadamrk2020-06-202-104/+155
| | |
| * | Fixes to callable_sig_from_fn_traitadamrk2020-06-202-67/+72
| | |
| * | Make get_fn_trait a method of FnTraitadamrk2020-06-203-21/+21
| | |
| * | Switch back callable_sig for known fn typesadamrk2020-06-202-4/+4
| | |
| * | Infer FnSig from Fn traitsadamrk2020-06-195-18/+197
| | |
* | | Merge #4952bors[bot]2020-06-192-0/+94
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4952: Shift bound variables correctly when using assoc type shorthand r=matklad a=flodiebold Fixes #4885. Fixes #4800. Co-authored-by: Florian Diebold <[email protected]>
| * | | Shift bound variables correctly when using assoc type shorthandFlorian Diebold2020-06-192-0/+94
| | | | | | | | | | | | | | | | | | | | Fixes #4885. Fixes #4800.
* | | | Merge #4951bors[bot]2020-06-192-6/+31
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 4951: Don't panic on crates depending on themselves r=matklad a=flodiebold Fixes #3883. Co-authored-by: Florian Diebold <[email protected]>
| * | | Don't panic on crates depending on themselvesFlorian Diebold2020-06-192-6/+31
| | | | | | | | | | | | | | | | Fixes #3883.
* | | | Use correct substs for super trait assoc typesFlorian Diebold2020-06-193-17/+47
| |/ / |/| | | | | | | | | | | | | | | | | | | | When referring to an associated type of a super trait, we used the substs of the subtrait. That led to the #4931 crash if the subtrait had less parameters, but it could also lead to other incorrectness if just the order was different. Fixes #4931.
* | | Fix substs in resolve_value_path for ImplSelfVincent Rouillé2020-06-192-1/+33
|/ / | | | | | | Fixes #4953.
* | Merge #4851bors[bot]2020-06-195-5/+134
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4851: Add quickfix to add a struct field r=TimoFreiberg a=TimoFreiberg Related to #4563 I created a quickfix for record literals first because the NoSuchField diagnostic was already there. To offer that quickfix for FieldExprs with unknown fields I'd need to add a new diagnostic (or create a `NoSuchField` diagnostic for those cases) I think it'd make sense to make this a snippet completion (to select the generated type), but this would require changing the `Analysis` API and I'd like some feedback before I touch that. Co-authored-by: Timo Freiberg <[email protected]>
| * | Add quickfix to add a struct fieldTimo Freiberg2020-06-125-5/+134
| | |
* | | Merge #4937bors[bot]2020-06-191-1/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4937: Allow overriding rust-analyzer display version r=matklad a=oxalica The build script invokes `git` for version information which is displayed when rust-analyzer is called with `--version`. But in build environment without `git` or when the source code is not a git repo, there's no way to manually specify the version information. This patch respects environment variable ~`REV`~ `RUST_ANALYZER_REV` in compile time for overriding. Related: https://github.com/NixOS/nixpkgs/pull/90976 Co-authored-by: oxalica <[email protected]>
| * | | Fix fmtoxalica2020-06-181-1/+2
| | | |
| * | | Allow overriding rust-analyzer display revisionoxalica2020-06-181-1/+3
| | | |
* | | | Merge #4839bors[bot]2020-06-196-36/+1335
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4839: `Go to Type Definition` hover action. r=matklad a=vsrs ![hover_actions_goto](https://user-images.githubusercontent.com/62505555/83335671-0122e380-a2b7-11ea-9922-fbdcfb11a7f3.gif) This implementation supports things like `dyn Trait<SomeType>`, `-> impl Trait`, etc. Co-authored-by: vsrs <[email protected]>
| * | | | Apply suggestions from code reviewvsrs2020-06-183-65/+328
| | | | |
| * | | | Add Type::walk methodvsrs2020-06-183-75/+132
| | | | |
| * | | | Remove AdtOrTraitvsrs2020-06-184-50/+39
| | | | |
| * | | | Add associated type test.vsrs2020-06-181-0/+57
| | | | |
| * | | | Fix type "items" order.vsrs2020-06-182-24/+36
| | | | |
| * | | | Add `Go to Type Definition` hover action.vsrs2020-06-188-35/+956
| | | | |
| * | | | Fix empty hover action group for a runnable.vsrs2020-06-181-1/+1
| | | | |
* | | | | Speedup VFS::partitionAleksey Kladov2020-06-194-11/+30
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The task of `partition` function is to bin the flat list of paths into disjoint filesets. Ideally, it should be incremental -- each new file should be added to a specific fileset. However, preliminary measurnments show that it is actually fast enough if we just optimize this to use a binary search instead of a linear scan.
* | | | Merge #4930bors[bot]2020-06-181-28/+49
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4930: Avoid all unchecked indexing in match checking r=flodiebold a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4416, but replaces it with a false positive. r? @flodiebold Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Avoid all unchecked indexing in match checkingJonas Schievink2020-06-171-28/+49
| | | | |
* | | | | Merge #4941bors[bot]2020-06-182-8/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4941: Simplify r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | SimplifyAleksey Kladov2020-06-182-8/+4
| | |_|/ / | |/| | |
* | | | | Merge #4903bors[bot]2020-06-185-41/+56
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4903: Add highlighting support for doc comments r=matklad a=Nashenas88 The language server protocol includes a semantic modifier for documentation. This change exports that modifier for doc comments so users can choose to highlight them differently compared to regular comments. Example: <img width="375" alt="Screen Shot 2020-06-16 at 10 34 14 AM" src="https://user-images.githubusercontent.com/1673130/84788271-f6599580-afbc-11ea-96e5-7a0215da620b.png"> CC @woody77 Co-authored-by: Paul Daniel Faria <[email protected]>
| * | | | Remove logic to mark all doctest code asPaul Daniel Faria2020-06-182-14/+13
| | | | |
| * | | | Ensure all existing doctest code highlights have documentation modifierPaul Daniel Faria2020-06-173-21/+22
| | | | |
| * | | | Add highlighting support for doc commentsPaul Daniel Faria2020-06-175-41/+56
| | | | |
* | | | | Merge #4935bors[bot]2020-06-182-10/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4935: Simplify r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | SimplifyAleksey Kladov2020-06-182-10/+4
| | |_|/ / | |/| | |
* | | | | Merge #4821bors[bot]2020-06-182-9/+32
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4821: display Doctest code lens before comment r=matklad a=bnjjj close #4785 Co-authored-by: Benjamin Coenen <[email protected]>
| * | | | display Doctest code lens before comment #4785Benjamin Coenen2020-06-182-9/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | display Doctest code lens before comment #4785Benjamin Coenen2020-06-141-2/+2
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>