Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Clean up and fix inner item collection a bit | Jonas Schievink | 2020-06-24 | 2 | -7/+38 | |
| | ||||||
* | Use a HashMap instead of Vec | Jonas Schievink | 2020-06-24 | 1 | -8/+9 | |
| | | | | | This is no longer enforcing stack discipline, so a Vec isn't necessary or helpful | |||||
* | Remove unneeded HirFileId argument | Jonas Schievink | 2020-06-24 | 2 | -7/+5 | |
| | ||||||
* | Shrink arenas after building ItemTree | Jonas Schievink | 2020-06-24 | 1 | -0/+46 | |
| | ||||||
* | ItemTree: Use more boxed slices | Jonas Schievink | 2020-06-24 | 4 | -15/+22 | |
| | ||||||
* | Don't allocate empty generics | Jonas Schievink | 2020-06-24 | 4 | -40/+78 | |
| | ||||||
* | Don't allocate common visibilities | Jonas Schievink | 2020-06-24 | 5 | -75/+142 | |
| | ||||||
* | Remove file id from item tree | Jonas Schievink | 2020-06-24 | 3 | -31/+25 | |
| | | | | It's not needed, and `source` is only used by tests anyways | |||||
* | Slightly reduce ItemTree memory footprint | Jonas Schievink | 2020-06-24 | 3 | -53/+68 | |
| | ||||||
* | Merge item tree traits | Jonas Schievink | 2020-06-24 | 3 | -21/+16 | |
| | | | | | The Source trait isn't needed anymore since we no longer merge extern crate items with use items. | |||||
* | Generate ModItem via macro | Jonas Schievink | 2020-06-24 | 1 | -105/+60 | |
| | ||||||
* | Address more comments | Jonas Schievink | 2020-06-24 | 2 | -5/+4 | |
| | ||||||
* | if let else -> match | Jonas Schievink | 2020-06-24 | 1 | -19/+21 | |
| | ||||||
* | Unify and test attribute handling | Jonas Schievink | 2020-06-24 | 5 | -33/+227 | |
| | ||||||
* | Collect inner items in expression macros | Jonas Schievink | 2020-06-24 | 4 | -14/+44 | |
| | ||||||
* | Make generics and attr queries use ItemTree | Jonas Schievink | 2020-06-24 | 5 | -21/+79 | |
| | | | | Now it's fast | |||||
* | Record HirFileId's in profiler | Jonas Schievink | 2020-06-24 | 1 | -1/+1 | |
| | ||||||
* | Make remaining item data queries use item tree | Jonas Schievink | 2020-06-24 | 5 | -152/+90 | |
| | ||||||
* | draw the rest of the owl | Jonas Schievink | 2020-06-24 | 10 | -395/+928 | |
| | ||||||
* | ItemTree: Make clonable and add AST access | Jonas Schievink | 2020-06-24 | 1 | -15/+69 | |
| | ||||||
* | Lower generics | Jonas Schievink | 2020-06-24 | 3 | -26/+83 | |
| | ||||||
* | ItemTree: use a newtyped ID | Jonas Schievink | 2020-06-24 | 3 | -53/+130 | |
| | ||||||
* | Move ItemTree lowering into its own module | Jonas Schievink | 2020-06-24 | 2 | -505/+513 | |
| | ||||||
* | Remove now-broken incremental test | Jonas Schievink | 2020-06-24 | 1 | -38/+0 | |
| | | | | | The ItemTree tracks impl and trait items, so the CrateDefMap now needs recomputing when those change | |||||
* | Remove raw item query | Jonas Schievink | 2020-06-24 | 3 | -488/+1 | |
| | ||||||
* | Fix test | Jonas Schievink | 2020-06-24 | 2 | -3/+10 | |
| | ||||||
* | Move collector | Jonas Schievink | 2020-06-24 | 1 | -108/+193 | |
| | ||||||
* | Draw the rest of the owl | Jonas Schievink | 2020-06-24 | 1 | -27/+108 | |
| | ||||||
* | collector changes WIP | Jonas Schievink | 2020-06-24 | 3 | -29/+34 | |
| | ||||||
* | lower traits | Jonas Schievink | 2020-06-24 | 2 | -29/+207 | |
| | ||||||
* | Hook up query, add impls, lower moar | Jonas Schievink | 2020-06-24 | 3 | -41/+128 | |
| | ||||||
* | Start item tree | Aleksey Kladov | 2020-06-24 | 3 | -3/+517 | |
| | ||||||
* | Fix formatting issue with glob shadow test | Paul Daniel Faria | 2020-06-24 | 1 | -17/+17 | |
| | ||||||
* | Use a macro in push_res to simplify code, simplify glob_shadowed_def assertion | Paul Daniel Faria | 2020-06-24 | 2 | -160/+47 | |
| | ||||||
* | Account for updated module ids when determining whether a resolution is ↵ | Paul Daniel Faria | 2020-06-24 | 2 | -9/+178 | |
| | | | | "changed" | |||||
* | Use only one code-path for parsing fixtures | Aleksey Kladov | 2020-06-23 | 1 | -44/+49 | |
| | | | | | This removes leading newlines everywhere, shifting all ranges in tests by one | |||||
* | Drop rarely used fixture functionality | Aleksey Kladov | 2020-06-23 | 1 | -25/+0 | |
| | ||||||
* | New VFS | Aleksey Kladov | 2020-06-23 | 3 | -7/+11 | |
| | ||||||
* | Handle bindings after @ in patterns | Jonas Schievink | 2020-06-21 | 1 | -10/+24 | |
| | ||||||
* | Merge #4947 | bors[bot] | 2020-06-20 | 1 | -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 Schievink | 2020-06-19 | 1 | -1/+1 | |
| | | ||||||
* | | Don't panic on crates depending on themselves | Florian Diebold | 2020-06-19 | 1 | -1/+1 | |
|/ | | | | Fixes #3883. | |||||
* | Simplify | Aleksey Kladov | 2020-06-18 | 2 | -8/+4 | |
| | ||||||
* | Anchor file-system operations to the file, and not to the source root. | Aleksey Kladov | 2020-06-16 | 3 | -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! | |||||
* | Deprecate hir::Path::from_ast | Aleksey Kladov | 2020-06-15 | 1 | -1/+1 | |
| | ||||||
* | find_path: return shorter paths for external items | Jonas Schievink | 2020-06-12 | 2 | -21/+77 | |
| | | | | | If a containing module is already in scope, there's no need to use the full path to the item. | |||||
* | Make known paths use `core` instead of `std` | Jonas Schievink | 2020-06-11 | 2 | -11/+11 | |
| | ||||||
* | Merge #4843 | bors[bot] | 2020-06-11 | 4 | -22/+33 | |
|\ | | | | | | | | | | | | | | | | | | | | | 4843: Don't guess macro expansion crate r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]> | |||||
| * | Don't guess macro expansion crate | Aleksey Kladov | 2020-06-11 | 3 | -21/+31 | |
| | | ||||||
| * | Make relevant_crates return a Set | Aleksey Kladov | 2020-06-11 | 1 | -1/+2 | |
| | |