Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Introduce ChildFromSource | Aleksey Kladov | 2019-12-05 | 2 | -0/+277 |
| | |||||
* | Publicize `file_id` to make `test_db` compile | ice1000 | 2019-12-05 | 1 | -1/+1 |
| | |||||
* | Use placeholder instead of `Option` | ice1000 | 2019-12-05 | 2 | -14/+10 |
| | |||||
* | One pub function less is good! | ice1000 | 2019-12-05 | 1 | -5/+0 |
| | |||||
* | Reduce visibility, use struct instead of tuples | ice1000 | 2019-12-05 | 1 | -20/+23 |
| | |||||
* | No block at the moment | ice1000 | 2019-12-04 | 1 | -6/+1 |
| | |||||
* | Remove almost unused `ModuleSource::new` | ice1000 | 2019-12-04 | 1 | -19/+1 |
| | |||||
* | Confluent `ModuleSource` usage | ice1000 | 2019-12-04 | 1 | -13/+5 |
| | |||||
* | Add `ModuleSource::Block` | ice1000 | 2019-12-04 | 1 | -2/+66 |
| | |||||
* | Fix test compilation | ice1000 | 2019-12-04 | 1 | -1/+1 |
| | |||||
* | Three-state enum for module origin | ice1000 | 2019-12-04 | 2 | -20/+78 |
| | |||||
* | Replace `ra_hir_expand::either` with crate | ice1000 | 2019-12-03 | 9 | -35/+34 |
| | |||||
* | Merge #2455 | bors[bot] | 2019-12-01 | 5 | -31/+102 |
|\ | | | | | | | | | | | | | | | | | | | 2455: Add BuiltinShadowMode r=flodiebold a=edwin0cheng This PR try to fix #1905 by introduce an `BuiltinShadowMode` in name resolving functions. cc @flodiebold Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Remove some empty lines | Edwin Cheng | 2019-12-01 | 1 | -2/+0 |
| | | |||||
| * | Use index instead of peekable | Edwin Cheng | 2019-12-01 | 1 | -35/+19 |
| | | |||||
| * | Fix comment | Edwin Cheng | 2019-12-01 | 1 | -2/+1 |
| | | |||||
| * | Add BuiltinShadowMode | Edwin Cheng | 2019-11-30 | 5 | -30/+120 |
| | | |||||
* | | Reduce variants of Expr | oxalica | 2019-11-29 | 2 | -38/+19 |
| | | |||||
* | | Infer range types | oxalica | 2019-11-28 | 3 | -4/+76 |
|/ | |||||
* | Move source-related traits to a separate module | Aleksey Kladov | 2019-11-28 | 8 | -58/+72 |
| | |||||
* | Use InFile for AstId | Aleksey Kladov | 2019-11-28 | 4 | -11/+11 |
| | |||||
* | Rename Source -> InFile | Aleksey Kladov | 2019-11-28 | 9 | -44/+44 |
| | |||||
* | Use Name::missing consistently | Aleksey Kladov | 2019-11-27 | 3 | -15/+16 |
| | |||||
* | Reformat | Aleksey Kladov | 2019-11-27 | 1 | -2/+1 |
| | |||||
* | Rename module_id -> local_id | Aleksey Kladov | 2019-11-27 | 8 | -24/+24 |
| | |||||
* | Move Ty | Aleksey Kladov | 2019-11-27 | 1 | -1/+1 |
| | |||||
* | Decouple | Aleksey Kladov | 2019-11-27 | 1 | -0/+10 |
| | |||||
* | Cleanup | Aleksey Kladov | 2019-11-26 | 1 | -2/+2 |
| | |||||
* | Merge #2418 | bors[bot] | 2019-11-26 | 2 | -7/+5 |
|\ | | | | | | | | | | | | | | | 2418: Hide MacroCallLoc outside hir_expand r=matklad a=edwin0cheng This PR refactor `MacroCallLoc` such that it be hided to become implementation details of hir_expand. Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Hide MacroCallLoc | Edwin Cheng | 2019-11-26 | 2 | -7/+5 |
| | | |||||
* | | Add note | Aleksey Kladov | 2019-11-26 | 1 | -0/+2 |
| | | |||||
* | | Store names in TraitData | Aleksey Kladov | 2019-11-26 | 1 | -17/+38 |
|/ | |||||
* | Merge #2406 | bors[bot] | 2019-11-26 | 1 | -1/+1 |
|\ | | | | | | | | | | | | | | | 2406: Add hygiene information to SourceAnalyzer r=matklad a=edwin0cheng This should fix https://github.com/rust-analyzer/rust-analyzer/pull/2392#issuecomment-557964686 Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Add hygiene information to SourceAnalyzer | Edwin Cheng | 2019-11-26 | 1 | -1/+1 |
| | | |||||
* | | Id-ify Ty::Adt | Aleksey Kladov | 2019-11-26 | 1 | -0/+4 |
| | | |||||
* | | Introduce hir::Type | Aleksey Kladov | 2019-11-26 | 1 | -0/+10 |
| | | | | | | | | It should provide a convenient API over more low-level Ty | ||||
* | | :arrow_up: salsa | Aleksey Kladov | 2019-11-26 | 1 | -1/+3 |
|/ | |||||
* | Fixme for union fields | Aleksey Kladov | 2019-11-25 | 2 | -0/+6 |
| | |||||
* | Fix hir for ast::UnionDef | Aleksey Kladov | 2019-11-25 | 9 | -46/+62 |
| | |||||
* | Merge #2396 | bors[bot] | 2019-11-24 | 1 | -6/+7 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2396: Switch to variant-granularity field type inference r=flodiebold a=matklad r? @flodiebold Previously, we had a `ty` query for each field. This PR switcthes to a query per struct, which returns an `ArenaMap` with `Ty`s. I don't know which approach is better. What is bugging me about the original approach is that, if we do all queries on the "leaf" defs, in practice we get a ton of queries which repeatedly reach into the parent definition to compute module, resolver, etc. This *seems* wasteful (but I don't think this is really what causes any perf problems for us). At the same time, I've been looking at Kotlin, and they seem to use the general pattern of analyzing the *parent* definition, and storing info about children into a `BindingContext`. I don't really which way is preferable. I think I want to try this approach, where query granularity generally mirrors the data granularity. The primary motivation for me here is probably just hope that we can avoid adding a ton of helpers to a `StructField`, and maybe in general avoid the need to switch to a global `StructField`, using `LocalStructFieldId` most of the time internally. For external API (ie, for `ra_ide_api`), I think we should continue with fine-grained `StructField::ty` approach, which internally fetches the table for the whole struct and indexes into it. In terms of actual memory savings, the results are as follows: ``` This PR: 142kb FieldTypesQuery (deps) 38kb FieldTypesQuery Status Quo: 208kb TypeForFieldQuery (deps) 18kb TypeForFieldQuery ``` Note how the table itself occupies more than twice as much space! I don't have an explanation for this: a plausible hypothesis is that single-field structs are very common and for them the table is a pessimisation. THere's noticiable wallclock time difference. Co-authored-by: Aleksey Kladov <[email protected]> | ||||
| * | Switch to variant-granularity field type inference | Aleksey Kladov | 2019-11-24 | 1 | -6/+7 |
| | | |||||
* | | Implement HasModule for AdtId | Aleksey Kladov | 2019-11-24 | 2 | -9/+13 |
|/ | |||||
* | Simplify ADT fields | Aleksey Kladov | 2019-11-24 | 1 | -3/+11 |
| | |||||
* | hir_def is fully doc'ed! | Aleksey Kladov | 2019-11-24 | 3 | -5/+8 |
| | |||||
* | Docs | Aleksey Kladov | 2019-11-24 | 2 | -2/+4 |
| | |||||
* | Don't redo field resolution in the IDE | Aleksey Kladov | 2019-11-24 | 1 | -1/+1 |
| | |||||
* | Simplify | Aleksey Kladov | 2019-11-24 | 4 | -26/+10 |
| | |||||
* | Cleanup nameres | Aleksey Kladov | 2019-11-24 | 4 | -33/+17 |
| | |||||
* | Use Trace in raw_items | Aleksey Kladov | 2019-11-24 | 3 | -29/+39 |
| | |||||
* | Some docs | Aleksey Kladov | 2019-11-24 | 4 | -11/+18 |
| |