aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src
Commit message (Collapse)AuthorAgeFilesLines
* Simplify Arena to use a generic indexAleksey Kladov2020-03-1912-112/+85
|
* ra_hir_def: remove dat fixmeveetaha2020-03-181-1/+0
|
* Check that no file contains trailing wsAleksey Kladov2020-03-174-107/+107
| | | | rustfmt allows trailing spaces in string literals unfortunately.
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-1622-177/+185
| | | | | | | It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate).
* Use Display instead of a custom methodKirill Bulatov2020-03-161-1/+1
|
* Fix crate display name dashesKirill Bulatov2020-03-161-2/+7
|
* Merge #3591bors[bot]2020-03-154-16/+61
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 3591: Support local macro_rules r=matklad a=edwin0cheng This PR implement local `macro_rules` in function body, by adding following things: 1. While lowering, add a `MacroDefId` in body's `ItemScope` as a textual legacy macro. 2. Make `Expander::enter_expand` search with given `ItemScope`. 3. Make `Resolver::resolve_path_as_macro` search with `LocalItemScope`. Fix #2181 Co-authored-by: Edwin Cheng <[email protected]>
| * Support local macro_rulesEdwin Cheng2020-03-144-16/+61
| |
* | Fix completion of trait itemsFlorian Diebold2020-03-142-11/+48
|/ | | | Trait items should be public by default.
* Protect against infinite macro expansion in def collectorFlorian Diebold2020-03-131-9/+39
| | | | | | | | | There was a test for this, but it wasn't actually working because the first recursive expansion failed. (The comma...) Even with this limit, that test (when fixed) still takes some time to pass because of the exponential growth of the expansions, so I disabled it and added a different one without growth.
* fix issue 3444Josh Mcguigan2020-03-131-0/+22
|
* Add resolve_extern_path in DBEdwin Cheng2020-03-101-1/+9
|
* Print crate name in profilAleksey Kladov2020-03-091-1/+2
|
* Minimize APIAleksey Kladov2020-03-091-1/+1
|
* Use `Index` for CrateGraphAleksey Kladov2020-03-094-7/+6
|
* Merge #3519bors[bot]2020-03-094-8/+8
|\ | | | | | | | | | | | | | | 3519: Show mod path on hover r=matklad a=SomeoneToIgnore Closes #1064 Co-authored-by: Kirill Bulatov <[email protected]>
| * Less abstract CrateData apiKirill Bulatov2020-03-094-8/+8
| |
* | Handle visibility for assoc item path completion as wellFlorian Diebold2020-03-081-12/+19
| |
* | Handle visibility in method call completionFlorian Diebold2020-03-071-3/+9
|/
* Normalize waiting queries namesAleksey Kladov2020-03-062-13/+8
|
* Less confusing profile namesAleksey Kladov2020-03-062-2/+2
|
* Explicitly remember desugard patsAleksey Kladov2020-03-062-6/+10
|
* Explicitly remember desugard exprsAleksey Kladov2020-03-062-18/+19
|
* Source map returns a resultAleksey Kladov2020-03-061-4/+7
| | | | cc #2236
* Add profiling callsAleksey Kladov2020-03-052-0/+4
|
* Implement concat macroEdwin Cheng2020-03-031-5/+18
|
* Reformat?Aleksey Kladov2020-03-021-5/+1
|
* Merge #3384bors[bot]2020-03-013-6/+49
|\ | | | | | | | | | | | | | | | | | | | | | | 3384: fix #2377 super::super::* r=flodiebold a=JoshMcguigan Thanks @matklad for the detailed explanation on #2377. I believe this fixes it. One thing I'm not sure about is you said the fix would involve changing `crates/ra_hir_def/src/path/lower/lower.rs`, but I only changed `crates/ra_hir_def/src/path/lower/lower_use.rs`. I'm not sure what kind of test code I'd have to write to expose the issue in `lower.rs`, but I'd be happy to add it if you are able to provide additional guidance. closes #2377 Co-authored-by: Josh Mcguigan <[email protected]>
| * fix completion for super::super::Josh Mcguigan2020-03-011-2/+6
| |
| * fix #2377 super::super::*Josh Mcguigan2020-03-012-4/+43
| |
* | Rename ast::ImplBlock -> ast::ImplDefAleksey Kladov2020-02-297-24/+24
|/
* Merge #3260bors[bot]2020-02-223-61/+48
|\ | | | | | | | | | | | | | | 3260: Refactor how builtins are resolved r=matklad a=flodiebold This fixes autocompletion suggesting e.g. `self::usize`. (I thought we had a bug for that, but I didn't find it.) Co-authored-by: Florian Diebold <[email protected]>
| * Refactor how builtins are resolvedFlorian Diebold2020-02-213-61/+48
| | | | | | | | This fixes autocompletion suggesting e.g. self::usize.
* | Fix handling of const patternsFlorian Diebold2020-02-213-4/+37
|/ | | | | | | | | E.g. in `match x { None => ... }`, `None` is a path pattern (resolving to the option variant), not a binding. To determine this, we need to try to resolve the name during lowering. This isn't too hard since we already need to resolve names for macro expansion anyway (though maybe a bit hacky). Fixes #1618.
* More manual clippy fixesKirill Bulatov2020-02-182-3/+3
|
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-188-15/+11
|
* Merge #3169bors[bot]2020-02-171-4/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3169: Show record field names in Enum completion r=flodiebold a=adamrk Adresses https://github.com/rust-analyzer/rust-analyzer/issues/2947. Previously the details shown when autocompleting an Enum variant would look like the variant was a tuple even if it was a record: ![2020-02-16-15:59:32_crop](https://user-images.githubusercontent.com/16367467/74607233-64f21980-50d7-11ea-99db-e973e29c71d7.png) This change will show the names of the fields for a record and use curly braces instead of parentheses: ![2020-02-16-15:33:00_crop](https://user-images.githubusercontent.com/16367467/74607251-8ce17d00-50d7-11ea-9d4d-38d198a4aec0.png) This required exposing the type `adt::StructKind` from `ra_hir` and adding a function ``` kind(self, db: &impl HirDatabase) -> StructKind ``` in the `impl` of `EnumVariant`. There was also a previously existing function `is_unit(self, db: &impl HirDatabase) -> bool` for `EnumVariant` which I removed because it seemed redundant after adding `kind`. Co-authored-by: adamrk <[email protected]>
| * replace uses of VariantData::is_unit with VariantData::kindadamrk2020-02-161-6/+0
| |
| * show names for record fields in enum completionadamrk2020-02-161-1/+8
| |
* | Introduce AsMacroCall traitEdwin Cheng2020-02-173-70/+124
| |
* | Bump crate resolution limit for large projectsBenjamin Brittain2020-02-141-1/+1
|/ | | | Change-Id: Ie0221e5bcfd1779cd5e241f96b4489e5bd3854c1
* Make Self implement the trait inside trait default methodsFlorian Diebold2020-02-141-5/+1
|
* Merge #3062bors[bot]2020-02-112-7/+15
|\ | | | | | | | | | | | | | | | | | | 3062: Implement slice pattern AST > HIR lowering r=jplatte a=jplatte WIP. The necessary changes for parsing are implemented, but actual inference is not yet. Just wanted to upload what I've got so far so it doesn't get duplicated :) Will fix #3043 Co-authored-by: Jonas Platte <[email protected]>
| * Implement slice pattern AST > HIR loweringJonas Platte2020-02-112-7/+15
| |
* | Merge #3074bors[bot]2020-02-103-10/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | 3074: Or patterns r=matthewjasper a=matthewjasper Works towards #2458 Co-authored-by: Matthew Jasper <[email protected]>
| * | Add or- and parenthesized-patternsMatthew Jasper2020-02-093-10/+14
| | |
* | | move to to_usize()Veetaha2020-02-091-1/+1
|/ /
* | FormattingFlorian Diebold2020-02-072-9/+12
| |
* | First stab at desugaring bounds for APITFlorian Diebold2020-02-071-4/+23
| |
* | wip lower impl trait to type argsFlorian Diebold2020-02-073-9/+90
|/