aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_def/src
Commit message (Collapse)AuthorAgeFilesLines
* add more countsAleksey Kladov2021-01-272-0/+4
|
* Traverse parent DefMap for `super` pathsJonas Schievink2021-01-252-9/+54
|
* Intern block locations and handle them in ModuleIdJonas Schievink2021-01-255-65/+104
|
* Merge #7426bors[bot]2021-01-258-63/+33
|\ | | | | | | | | | | | | | | | | | | | | 7426: Create all `ModuleId`s through a `DefMap` method r=jonas-schievink a=jonas-schievink `ModuleId` needs to be able to represent blocks, and only the associated `DefMap` will know how to construct that `ModuleId` bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Create all `ModuleId`s through a `DefMap` methodJonas Schievink2021-01-258-63/+33
| | | | | | | | | | `ModuleId` needs to be able to represent blocks, and only the associated `DefMap` will know how to construct that `ModuleId`
* | Derive Default on ItemTreeLaurențiu Nicola2021-01-252-12/+3
|/
* Identify methods using functions ids rather than string namesPhil Ellison2021-01-231-0/+1
|
* Merge #7391bors[bot]2021-01-232-0/+24
|\ | | | | | | | | | | | | | | 7391: Fix error when using "extern crate self as" r=kazatsuyu a=kazatsuyu Fix #6957 Co-authored-by: kazatsuyu <[email protected]>
| * Add mark::check! and mark::hit!kazatsuyu2021-01-222-0/+2
| |
| * cargo fmtkazatsuyu2021-01-221-2/+3
| |
| * Fix error when using "extern crate self as"kazatsuyu2021-01-222-0/+21
| |
* | Make `ModuleId`'s `krate` field privateJonas Schievink2021-01-221-1/+9
| |
* | Obtain `ModuleId`'s `DefMap` through a methodJonas Schievink2021-01-2210-17/+27
| |
* | Fix broken link in intra-docDaiki Ihara2021-01-221-0/+13
|/
* Remove unused fieldJonas Schievink2021-01-211-4/+0
|
* Add test for path resolution bugJonas Schievink2021-01-211-8/+33
|
* Revert "Make use of `block_def_map` in body lowering"Jonas Schievink2021-01-213-19/+18
|
* Merge #7378bors[bot]2021-01-212-1/+12
|\ | | | | | | | | | | | | | | 7378: Include `countme` crate to count important data structures. r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Include `countme` crate to count important data structures.Aleksey Kladov2021-01-212-1/+12
| |
* | Make use of `block_def_map` in body loweringJonas Schievink2021-01-213-18/+19
| | | | | | | | | | Removes the `local_scope` hack from `Expander` in favor of tracking the `DefMap` in use during body lowering
* | Remove unnecessary annotations from testsJonas Schievink2021-01-211-4/+0
|/
* Add test for nameres in nested blocksJonas Schievink2021-01-211-0/+29
|
* Add test that merges inner and outer namesJonas Schievink2021-01-211-0/+25
|
* Fix lowering with multiple block expressionsJonas Schievink2021-01-211-15/+23
|
* Fall back to parent DefMaps when resolving pathsJonas Schievink2021-01-211-0/+37
|
* Add name resolution query for block expressionsJonas Schievink2021-01-216-36/+198
|
* Treat BlockExpr as a potential module originJonas Schievink2021-01-202-2/+11
|
* DefMap: hide remaining crate-visible fieldsJonas Schievink2021-01-204-11/+23
|
* Merge #7359bors[bot]2021-01-202-26/+35
|\ | | | | | | | | | | | | | | | | | | 7359: ItemTree: store a mapping from blocks to inner items r=jonas-schievink a=jonas-schievink To do name resolution within block expressions, we need to know which inner items are located inside each block expression. This adds such a mapping to `ItemTree`, replacing the previous one, which was seemingly unused other than to access all the inner items. This also assigns `AstId`s to block expressions, which is needed to store the mapping in salsa. Co-authored-by: Jonas Schievink <[email protected]>
| * Create a mapping from blocks to inner itemsJonas Schievink2021-01-202-26/+35
| |
* | Make public DefMap fields privateJonas Schievink2021-01-205-14/+22
| |
* | Show const params in completionsLukas Wirth2021-01-191-9/+16
|/
* Merge #7336bors[bot]2021-01-189-36/+32
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 7336: Rename `CrateDefMap` to `DefMap` r=matklad a=jonas-schievink I propose handling local items by computing a `DefMap` for every block expression, using the regular (early) name resolution algorithm. The result of that will be a `DefMap` that has a reference to the parent `DefMap`, which is either the one computed for the containing block expression, or the crate's root `DefMap`. Name resolution will fall back to a name in the parent `DefMap` if it cannot be resolved in the inner block. The `DefMap`s computed for block expressions will go through a separate query that can be garbage-collected much more aggressively, since these `DefMap`s should be cheap to compute and are never part of a crate's public API. The first step towards that is to make `CrateDefMap` not specific to crates anymore, hence this rename (if this plans sounds reasonable). cc https://github.com/rust-analyzer/rust-analyzer/issues/7325 and https://github.com/rust-analyzer/rust-analyzer/issues/1165 Co-authored-by: Jonas Schievink <[email protected]>
| * Rename `CrateDefMap` to `DefMap`Jonas Schievink2021-01-189-36/+32
| |
| |
| \
*-. \ Merge #7297 #7338bors[bot]2021-01-181-0/+66
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7297: Propose trait associated items and autoimport traits on completion r=matklad a=SomeoneToIgnore ![trait_imports](https://user-images.githubusercontent.com/2690773/104819998-6faeb480-583a-11eb-8b45-b7351b51b90e.gif) Closes #7248 7338: Parse `impl const Trait` r=Veykril a=Veykril Closes #7313 bors r+ Co-authored-by: Kirill Bulatov <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>
| * | Add flyimport completion for trait assoc itemsKirill Bulatov2021-01-161-0/+66
| | |
* | | Merge #7326bors[bot]2021-01-181-1/+1
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 7326: Use `is_ident` when converting Path to an Identifier r=edwin0cheng a=kevaundray Co-authored-by: Kevaundray Wedderburn <[email protected]>
| * | cargo fmtKevaundray Wedderburn2021-01-181-1/+1
| | |
| * | use `is_ident` methodKevaundray Wedderburn2021-01-181-2/+2
| | |
* | | Merge #7327bors[bot]2021-01-181-9/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7327: Remove `item_tree::Expr` r=jonas-schievink a=jonas-schievink It's empty and unused bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Remove `item_tree::Expr`Jonas Schievink2021-01-181-9/+1
| | | | | | | | | | | | | | | | It's empty and unused
* | | | Add `MacroType` syntaxJonas Schievink2021-01-181-0/+2
|/ / /
* | | Use ‘index’ terminology for arena consistentlyAramis Razzaghipour2021-01-174-7/+7
| | |
* | | Merge #7276bors[bot]2021-01-177-7/+7
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7276: Remove map module from la-arena public API r=lnicola a=arzg It’s unlikely that more items will be added to the module, so it’s simpler for users if `ArenaMap` is re-exported and the module made private. This doesn’t compile for the same reason that #7275 doesn’t: > This pull request doesn’t compile because dependencies on la-arena go through crates.io, so existing dependencies on the crate are referencing an old version. As such, this PR will only compile once a new la-arena version has been published. Co-authored-by: Aramis Razzaghipour <[email protected]>
| * | Remove map module from la-arena public APIAramis Razzaghipour2021-01-157-7/+7
| | | | | | | | | | | | | | | | | | It’s unlikely that more items will be added to the module, so it’s simpler for users if `ArenaMap` is re-exported and the module made private.
* | | Handle self/super/crate in PathSegment as NameRefLukas Wirth2021-01-151-1/+1
| | |
* | | Add support for yiled keywordDaiki Ihara2021-01-152-1/+8
|/ /
* | prepare to publish el libro de arenaAleksey Kladov2021-01-1414-14/+14
| |
* | Merge #7110bors[bot]2021-01-143-4/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7110: Deduplicate macros when offering completion r=matklad a=AdnoC Closes https://github.com/rust-analyzer/rust-analyzer/issues/7081 When iterating over the names within the `hir_def::resolver::Scope` for a module, track what macros are in the `hir_def::item_scope::ItemScope::legacy_macros` collection for the module. When iterating over names from the prelude, do not proccess the name if it had been in the `legacy_macros` collection. This is implemented with a `FxHashSet` in the `Scope::process_names` function that is populated when iterating over `legacy_macros` and checked when iterating over the prelude. Alternative implementation could instead query the `legacy_macros` `FxHashMap` directly when processing names in the prelude. Also, I'd like to add a test for this, but I'm not sure where it could be added. Co-authored-by: AdnoC <[email protected]>
| * | we can have one less call to name.clone()AdnoC2020-12-311-2/+3
| | |