aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def
Commit message (Collapse)AuthorAgeFilesLines
...
* | Use IdRange for variantsJonas Schievink2020-06-253-9/+29
| |
* | Generalize FieldIds -> IdRange<T>Jonas Schievink2020-06-252-13/+14
| |
* | adt.rs: fetch struct/union data from item treeJonas Schievink2020-06-251-19/+49
| |
* | Collect field/variant attrs in ItemTreeJonas Schievink2020-06-256-20/+40
| |
* | Allow iterating fields in the ItemTreeJonas Schievink2020-06-253-10/+28
|/
* Reorder itemsJonas Schievink2020-06-241-76/+76
|
* Clean up and fix inner item collection a bitJonas Schievink2020-06-242-7/+38
|
* Use a HashMap instead of VecJonas Schievink2020-06-241-8/+9
| | | | | This is no longer enforcing stack discipline, so a Vec isn't necessary or helpful
* Remove unneeded HirFileId argumentJonas Schievink2020-06-242-7/+5
|
* Shrink arenas after building ItemTreeJonas Schievink2020-06-241-0/+46
|
* ItemTree: Use more boxed slicesJonas Schievink2020-06-244-15/+22
|
* Don't allocate empty genericsJonas Schievink2020-06-244-40/+78
|
* Don't allocate common visibilitiesJonas Schievink2020-06-245-75/+142
|
* Remove file id from item treeJonas Schievink2020-06-243-31/+25
| | | | It's not needed, and `source` is only used by tests anyways
* Slightly reduce ItemTree memory footprintJonas Schievink2020-06-243-53/+68
|
* Merge item tree traitsJonas Schievink2020-06-243-21/+16
| | | | | The Source trait isn't needed anymore since we no longer merge extern crate items with use items.
* Generate ModItem via macroJonas Schievink2020-06-241-105/+60
|
* Address more commentsJonas Schievink2020-06-242-5/+4
|
* if let else -> matchJonas Schievink2020-06-241-19/+21
|
* Unify and test attribute handlingJonas Schievink2020-06-245-33/+227
|
* Collect inner items in expression macrosJonas Schievink2020-06-244-14/+44
|
* Make generics and attr queries use ItemTreeJonas Schievink2020-06-245-21/+79
| | | | Now it's fast
* Record HirFileId's in profilerJonas Schievink2020-06-241-1/+1
|
* Make remaining item data queries use item treeJonas Schievink2020-06-245-152/+90
|
* draw the rest of the owlJonas Schievink2020-06-2410-395/+928
|
* ItemTree: Make clonable and add AST accessJonas Schievink2020-06-241-15/+69
|
* Lower genericsJonas Schievink2020-06-243-26/+83
|
* ItemTree: use a newtyped IDJonas Schievink2020-06-243-53/+130
|
* Move ItemTree lowering into its own moduleJonas Schievink2020-06-242-505/+513
|
* Remove now-broken incremental testJonas Schievink2020-06-241-38/+0
| | | | | The ItemTree tracks impl and trait items, so the CrateDefMap now needs recomputing when those change
* Remove raw item queryJonas Schievink2020-06-243-488/+1
|
* Fix testJonas Schievink2020-06-242-3/+10
|
* Move collectorJonas Schievink2020-06-241-108/+193
|
* Draw the rest of the owlJonas Schievink2020-06-241-27/+108
|
* collector changes WIPJonas Schievink2020-06-243-29/+34
|
* lower traitsJonas Schievink2020-06-242-29/+207
|
* Hook up query, add impls, lower moarJonas Schievink2020-06-243-41/+128
|
* Start item treeAleksey Kladov2020-06-243-3/+517
|
* Fix formatting issue with glob shadow testPaul Daniel Faria2020-06-241-17/+17
|
* Use a macro in push_res to simplify code, simplify glob_shadowed_def assertionPaul Daniel Faria2020-06-242-160/+47
|
* Account for updated module ids when determining whether a resolution is ↵Paul Daniel Faria2020-06-242-9/+178
| | | | "changed"
* Use only one code-path for parsing fixturesAleksey Kladov2020-06-231-44/+49
| | | | | This removes leading newlines everywhere, shifting all ranges in tests by one
* Drop rarely used fixture functionalityAleksey Kladov2020-06-231-25/+0
|
* New VFSAleksey Kladov2020-06-233-7/+11
|
* Handle bindings after @ in patternsJonas Schievink2020-06-211-10/+24
|
* Merge #4947bors[bot]2020-06-201-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| * Replace `impls_in_trait` with `CrateImplDefs`Jonas Schievink2020-06-191-1/+1
| |
* | Don't panic on crates depending on themselvesFlorian Diebold2020-06-191-1/+1
|/ | | | Fixes #3883.
* SimplifyAleksey Kladov2020-06-182-8/+4
|
* Anchor file-system operations to the file, and not to the source root.Aleksey Kladov2020-06-163-8/+6
| | | | | | | | | | | | | | | | Anchoring to the SourceRoot wont' work if the path is absolute: #[path = "/tmp/foo.rs"] mod foo; Anchoring to a file will. However, we *should* anchor, instead of just producing an abs path. I can imagine a situation where, for example, rust-analyzer processes crates from different machines (or, for example, from in-memory git branch), where the same absolute path in different crates might refer to different files in the end!