aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/db.rs
Commit message (Collapse)AuthorAgeFilesLines
* Remove raw item queryJonas Schievink2020-06-241-2/+2
|
* Add new query to statsJonas Schievink2020-06-191-4/+4
|
* Replace `impls_in_trait` with `CrateImplDefs`Jonas Schievink2020-06-191-4/+4
|
* Merge #4689bors[bot]2020-06-051-2/+2
|\ | | | | | | | | | | | | | | | | | | | | 4689: Implement return position impl trait / opaque type support r=matklad a=flodiebold This is working, but I'm not that happy with how the lowering works. We might need an additional representation between `TypeRef` and `Ty` where names are resolved and `impl Trait` bounds are separated out, but things like inference variables don't exist and `impl Trait` is always represented the same way. Also note that this doesn't implement correct handling of RPIT *inside* the function (which involves turning the `impl Trait`s into variables and creating obligations for them). That intermediate representation might help there as well. Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Florian Diebold <[email protected]>
| * Review fixesFlorian Diebold2020-06-051-2/+2
| |
* | Measure memory usage of ImportMapJonas Schievink2020-06-051-5/+5
|/
* Cleanup memory usage statsAleksey Kladov2020-03-251-3/+4
|
* Normalize waiting queries namesAleksey Kladov2020-03-061-5/+5
|
* Don't reuse the Chalk solverFlorian Diebold2020-03-061-2/+1
| | | | | This slows down analysis-stats a bit (~5% in my measurement), but improves incremental checking a lot because we can reuse trait solve results.
* Re-sync queries for memory usage measurnmentAleksey Kladov2020-01-291-9/+13
|
* Split `infer` query into two for better profilingMichal Terepeta2020-01-031-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the same change as we did with `crate_def_map` and it does seem that we mostly spend time in salsa, without recomputing much on rust-analyzer side. Example output: ``` 233ms - handle_inlay_hints 163ms - get_inlay_hints 163ms - SourceAnalyzer::new 67ms - def_with_body_from_child_node 67ms - analyze_container 67ms - analyze_container 67ms - Module::from_definition 67ms - Module::from_file 67ms - crate_def_map 0ms - parse_macro_query (6 calls) 0ms - raw_items_query (1 calls) 66ms - ??? 0ms - crate_def_map (1 calls) 0ms - crate_def_map (1 calls) 96ms - infer 2ms - trait_solve_query (2 calls) 94ms - ??? 0ms - body_with_source_map_query (1 calls) 0ms - crate_def_map (1 calls) [...] ``` Signed-off-by: Michal Terepeta <[email protected]>
* Split `crate_def_map` into two methodsMichal Terepeta2020-01-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change: - introduces `compute_crate_def_map` query and renames `CrateDefMap::crate_def_map_query` for consistency, - annotates `crate_def_map` as `salsa::transparent` and adds a top-level `crate_def_map` wrapper function around that starts the profiler and immediately calls into `compute_crate_def_map` query. This allows us to better understand where we spent the time, in particular, how much is spent in the recomputaiton and how much in salsa. Example output (where we don't actually re-compute anything, but the query still takes a non-trivial amount of time): ``` 211ms - handle_inlay_hints 150ms - get_inlay_hints 150ms - SourceAnalyzer::new 65ms - def_with_body_from_child_node 65ms - analyze_container 65ms - analyze_container 65ms - Module::from_definition 65ms - Module::from_file 65ms - crate_def_map 1ms - parse_macro_query (6 calls) 0ms - raw_items_query (1 calls) 64ms - ??? ``` Signed-off-by: Michal Terepeta <[email protected]>
* Remove import source mapAleksey Kladov2019-12-211-2/+2
|
* Revert "Merge #2629"Aleksey Kladov2019-12-211-2/+2
| | | | | This reverts commit cdc9d682b066b110e0a44e5f8f1c574b38c16ba9, reversing changes made to 90ef070db3dce0a7acb9cd11d0b0d72de13c9d79.
* Remove import source mapAleksey Kladov2019-12-211-2/+2
|
* Move TyAleksey Kladov2019-11-271-111/+6
|
* More decouplingAleksey Kladov2019-11-271-10/+7
|
* DecoupleAleksey Kladov2019-11-271-3/+3
|
* Crate -> CrateIdAleksey Kladov2019-11-271-7/+7
|
* DecoupleAleksey Kladov2019-11-261-12/+9
|
* Remove ns-polymorphic type_for_defAleksey Kladov2019-11-261-4/+7
|
* id-ify impls_in_crate_queryAleksey Kladov2019-11-261-2/+2
|
* Use GenericDefIdMoreAleksey Kladov2019-11-251-3/+3
|
* Use GenericDefId moreAleksey Kladov2019-11-251-2/+2
|
* Switch to variant-granularity field type inferenceAleksey Kladov2019-11-241-9/+14
|
* Remove ids moduleAleksey Kladov2019-11-241-4/+6
|
* Remove unneded supertraitAleksey Kladov2019-11-231-1/+1
|
* Get rid of DefDatabase2Aleksey Kladov2019-11-231-3/+1
|
* Move docs to hir_defAleksey Kladov2019-11-231-12/+5
|
* Move lang_items to hir_defAleksey Kladov2019-11-231-17/+6
|
* Move attrs query to hir_defAleksey Kladov2019-11-231-4/+0
|
* Move const&static date to hir_defAleksey Kladov2019-11-221-12/+6
|
* Move FunctionData to hir_defAleksey Kladov2019-11-221-8/+5
|
*-. Merge #2348 #2352bors[bot]2019-11-221-6/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2348: Add support for stringify! builtin macro r=matklad a=piotr-szpetkowski Refs #2212 First time ever contributing here, hopefully it's ok. 2352: Move TypeAlias to hir_def r=matklad a=matklad Co-authored-by: Piotr Szpetkowski <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>
| | * Move TypeAlias to hir_defAleksey Kladov2019-11-221-6/+2
| |/
* / Encapsulate AttrsAleksey Kladov2019-11-221-2/+2
|/
* Remove old hir::generics moduleAleksey Kladov2019-11-211-3/+2
|
* Move generic_params query to HIRAleksey Kladov2019-11-201-6/+4
|
* Move constants to new IDAleksey Kladov2019-11-201-1/+0
| | | | This allows us to get rid of trait item index
* Move traits to hir_defAleksey Kladov2019-11-201-8/+2
|
* Move Generics to hir_defAleksey Kladov2019-11-201-1/+1
|
* Upgrade Chalk againFlorian Diebold2019-11-161-5/+12
|
* Upgrade ChalkFlorian Diebold2019-11-161-2/+13
| | | | | Associated type values (in impls) are now a separate entity in Chalk, so we have to intern separate IDs for them.
* Remove old impls infrastructureAleksey Kladov2019-11-151-15/+5
|
* Move body queries to hir_defAleksey Kladov2019-11-141-14/+5
|
* Move scopes to hir_defAleksey Kladov2019-11-141-1/+1
|
* Move expression lowering to hir_defAleksey Kladov2019-11-121-2/+2
|
* Minor cleanupAleksey Kladov2019-11-121-7/+5
|
* Merge #2179bors[bot]2019-11-061-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | 2179: Use HirDatabase to compute `is_deprecated` r=matklad a=martskins This PR fixes #2167 by introducing `attributes_query` and adding `fn attrs(&self, def: crate::AttrDef) -> Option<Arc<[Attr]>>;` to the `DefDatabase` trait. I'm a little concerned about the two spots in `attributes_query` where code is repeated, but I couldn't figure out a way to avoid that, so.. I welcome suggestions :smile: Co-authored-by: Martin Asquino <[email protected]>
| * HirDatabase stored attributesMartin Asquino2019-11-041-0/+4
| |