aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir
Commit message (Collapse)AuthorAgeFilesLines
...
* make Parse fields privateAleksey Kladov2019-07-124-5/+6
| | | | this is in preparation for the new rowan API
* fix profile nameAleksey Kladov2019-07-091-1/+1
|
* Merge #1515bors[bot]2019-07-0910-117/+285
|\ | | | | | | | | | | | | | | | | | | | | | | 1515: Trait environment r=matklad a=flodiebold This adds the environment, i.e. the set of `where` clauses in scope, when solving trait goals. That means that e.g. in ```rust fn foo<T: SomeTrait>(t: T) {} ``` , we are able to complete methods of `SomeTrait` on the `t`. This affects the trait APIs quite a bit (since every method that needs to be able to solve for some trait needs to get this environment somehow), so I thought I'd do it rather sooner than later ;) Co-authored-by: Florian Diebold <[email protected]>
| * Unify `normalize` and `implements` to simplify codeFlorian Diebold2019-07-088-105/+66
| |
| * Use environment for associated type normalization as wellFlorian Diebold2019-07-087-20/+52
| |
| * Start handling environment in trait resolutionFlorian Diebold2019-07-086-14/+103
| | | | | | | | | | I.e. if we are inside a function with some where clauses, we assume these where clauses hold.
| * Refactor a bit & introduce Environment structFlorian Diebold2019-07-087-21/+107
| |
* | Merge #1512bors[bot]2019-07-093-17/+106
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 1512: Infer ? operator r=unrealhoang a=unrealhoang Logical continuation of https://github.com/rust-analyzer/rust-analyzer/pull/1501 cc https://github.com/rust-analyzer/rust-analyzer/issues/1426 Co-authored-by: Unreal Hoang <[email protected]>
| * | beautify testsUnreal Hoang2019-07-091-20/+36
| | |
| * | use namespaced consts for KnownNameUnreal Hoang2019-07-081-12/+10
| | |
| * | projection over std::ops::Try::Ok to infer try/?Unreal Hoang2019-07-083-2/+77
| | |
* | | Look for the fXX_runtime lang items during method resolution.Marco Groppo2019-07-081-4/+6
| |/ |/|
* | Remove unused dependenciesShotaro Yamada2019-07-081-2/+0
|/
* cargo formatMuhammad Mominul Huque2019-07-076-14/+14
|
* Constify KnownName'sMuhammad Mominul Huque2019-07-079-154/+72
|
* Merge #1501bors[bot]2019-07-075-35/+170
|\ | | | | | | | | | | | | | | 1501: Infer for loop variable r=flodiebold a=unrealhoang My take on https://github.com/rust-analyzer/rust-analyzer/issues/1425 Co-authored-by: Unreal Hoang <[email protected]>
| * add projection to infer for loop variableUnreal Hoang2019-07-075-35/+170
| |
* | Merge #1499bors[bot]2019-07-076-108/+240
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 1499: processing attribute #[path] of module r=matklad a=andreevlex support two cases - simple name file `foo.rs` - declaration in mod.rs #1211 Co-authored-by: Alexander Andreev <[email protected]>
| * Moved module resolution test in mods.rsAlexander Andreev2019-07-074-193/+195
| |
| * Added support attribute path in resolusion module fnAlexander Andreev2019-07-062-5/+119
| |
| * Added extract path attribute for current moduleAlexander Andreev2019-07-063-6/+22
| | | | | | | | #1211
* | Make EnumVariant a GenericDef and simplify some codeFlorian Diebold2019-07-064-14/+21
| |
* | Add trait obligations for where clauses when calling functions/methodsFlorian Diebold2019-07-067-34/+156
|/ | | | | E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc.
* Merge #1495bors[bot]2019-07-051-1/+17
|\ | | | | | | | | | | | | | | 1495: use correct file for diagnostics r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * use correct file for diagnosticsAleksey Kladov2019-07-051-1/+17
| | | | | | | | closes #1475
* | Merge #1494bors[bot]2019-07-051-1/+6
|\| | | | | | | | | | | | | | | 1494: properly restrict diagnostics to a single file r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * properly restrict diagnostics to a single fileAleksey Kladov2019-07-051-1/+6
| |
* | Clippy trivially_copy_pass_by_refJeremy Kolb2019-07-057-17/+17
|/
* Merge #1491bors[bot]2019-07-052-17/+17
|\ | | | | | | | | | | | | | | | | | | 1491: More clippy r=matklad a=kjeremy A few more clippy changes. I'm a little unsure of the second commit. It's the trivially_copy_pass_by_ref lint and there are a number of places in the code we could use it if it makes sense. Co-authored-by: Jeremy Kolb <[email protected]>
| * &self -> selfJeremy Kolb2019-07-051-13/+13
| | | | | | | | https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
| * Clippy changesJeremy Kolb2019-07-052-4/+4
| |
* | Fix clippy::redundant_cloneShotaro Yamada2019-07-052-3/+2
|/
* Some clippy fixes for 1.36Jeremy Kolb2019-07-049-30/+24
|
* Merge #1486bors[bot]2019-07-0435-240/+267
|\ | | | | | | | | | | | | | | 1486: allow rustfmt to reorder imports r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * allow rustfmt to reorder importsAleksey Kladov2019-07-0435-240/+267
| | | | | | | | | | | | This wasn't a right decision in the first place, the feature flag was broken in the last rustfmt release, and syntax highlighting of imports is more important anyway
* | Fixed request changesAlexander Andreev2019-07-032-6/+5
| |
* | Move resolve raw name in name.rsAlexander Andreev2019-07-033-11/+40
| | | | | | | | Added test for check module resolution with raw name
* | Added resolve submodules with raw nameAlexander Andreev2019-07-031-0/+9
|/ | | | #1211
* Add completion for type aliasesShotaro Yamada2019-07-021-0/+4
|
* put source maps first for better statsAleksey Kladov2019-06-301-6/+6
|
* print memory usage for queriesAleksey Kladov2019-06-301-0/+4
|
* Complete associated methods on enums (and unions) as wellFlorian Diebold2019-06-291-0/+4
|
* make sure that CrateDefMap is independent from syntaxAleksey Kladov2019-06-266-48/+54
|
* cache chalk queriesAleksey Kladov2019-06-263-194/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | This gives a significant speedup, because chalk will call these functions several times even withing a single revision. The only significant one here is `impl_data`, but I figured it might be good to cache others just for consistency. The results I get are: Before: from scratch: 16.081457952s no change: 15.846493ms trivial change: 352.95592ms comment change: 361.998408ms const change: 457.629212ms After: from scratch: 14.910610278s no change: 14.934647ms trivial change: 85.633023ms comment change: 96.433023ms const change: 171.543296ms Seems like a nice win!
* Add commentShotaro Yamada2019-06-251-6/+8
|
* Method resolution for slicesShotaro Yamada2019-06-241-25/+36
|
* Bump cargo_metadata, ena, flexi_loggerkjeremy2019-06-201-2/+2
|
* Add firewall query to lang itemsAleksey Kladov2019-06-193-17/+38
| | | | | With an intermediate query, changing one module won't cause reparsing of all modules
* rename XSignature -> XDataAleksey Kladov2019-06-186-59/+55
|
* Add test for autoderef infinite recursionFlorian Diebold2019-06-161-0/+25
|