Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Track import type outside of , use enum rather than bool to improve readability | Paul Daniel Faria | 2020-06-25 | 4 | -40/+73 |
| | |||||
* | Revert resolution of all glob imports first, replace with tracking of glob ↵ | Paul Daniel Faria | 2020-06-25 | 4 | -49/+119 |
| | | | | imports and shadowing when more specific | ||||
* | Order of glob imports should not affect import shadowing | Paul Daniel Faria | 2020-06-25 | 2 | -16/+71 |
| | |||||
* | Reorder items | Jonas Schievink | 2020-06-24 | 1 | -76/+76 |
| | |||||
* | 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 | 1 | -29/+206 |
| | |||||
* | 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. |