aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1052bors[bot]2019-03-273-88/+143
|\ | | | | | | | | | | | | | | | | | | | | | | | | 1052: Flip binary expression assist r=matklad a=marcogroppo Adds an assist that can flip these binary comparison operators: `==`, `!=`, `>`, `>=`, `<`, `<=`. This is a small extension to the 'flip ==' assist. In theory we could easily flip ANY binary expression, but I'm not sure it would be a good idea (IMHO we should try not to change the meaning of the expression). Does it make sense? Co-authored-by: Marco Groppo <[email protected]>
| * Flip any binary expression except assignments.Marco Groppo2019-03-261-64/+56
| |
| * Merge branch 'master' of github.com:rust-analyzer/rust-analyzer into ↵Marco Groppo2019-03-2628-817/+1017
| |\ | |/ |/| | | flip-binexpr
* | Merge #1060bors[bot]2019-03-261-5/+22
|\ \ | | | | | | | | | | | | | | | | | | | | | 1060: more realistic test for incrementality r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | more realistic test for incrementalityAleksey Kladov2019-03-261-5/+22
|/ /
* | Merge #1059bors[bot]2019-03-2611-209/+233
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1059: Typed ids r=matklad a=matklad just some type-safety and refactorings. closes https://github.com/rust-analyzer/rust-analyzer/issues/1054 bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * | reduce visibilityAleksey Kladov2019-03-262-12/+12
| | |
| * | renameAleksey Kladov2019-03-267-56/+44
| | |
| * | simplifyAleksey Kladov2019-03-263-21/+21
| | |
| * | make stuff privateAleksey Kladov2019-03-261-26/+14
| | |
| * | more type safetyAleksey Kladov2019-03-265-63/+82
| | |
| * | strongy-typed ids for macrosAleksey Kladov2019-03-264-33/+19
| | |
| * | add typed idsAleksey Kladov2019-03-267-45/+88
| | |
* | | Merge #1051bors[bot]2019-03-265-378/+391
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 1051: Move ra_ide_api unit tests r=matklad a=detrumi Closes #1048 Co-authored-by: Wilco Kusee <[email protected]>
| * | Move ra_ide_api unit testsWilco Kusee2019-03-255-378/+391
| | |
* | | Merge #1058bors[bot]2019-03-261-17/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1058: remove some dead code r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | remove some dead codeAleksey Kladov2019-03-261-17/+1
|/ / /
* | | add links to readmeAleksey Kladov2019-03-261-0/+6
| | |
* | | Merge #1057bors[bot]2019-03-268-125/+131
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1057: simplify r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | simplifyAleksey Kladov2019-03-263-8/+6
| | | |
| * | | move source_id to a separate fileAleksey Kladov2019-03-268-120/+128
|/ / /
* | | Merge #1055bors[bot]2019-03-268-144/+105
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1055: store macro def inside macro id r=matklad a=matklad This makes macro expansion resilient to changes to code inside the macro Co-authored-by: Aleksey Kladov <[email protected]>
| * | | make macro parsing a queryAleksey Kladov2019-03-263-5/+8
| | | |
| * | | reduce visibilityAleksey Kladov2019-03-261-23/+27
| | | |
| * | | store macro def inside macro idAleksey Kladov2019-03-267-119/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This solves the problem of "macro expansion can't call into name resolution, because name resolution calls back into macro expansion" Because we store macro def as a part of call id, macro expansion just knows the def!
* | | | Merge #1056bors[bot]2019-03-261-4/+4
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 1056: :arrow_up: vfs r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | :arrow_up: vfsAleksey Kladov2019-03-261-4/+4
|/ / /
* | | Merge #1040bors[bot]2019-03-2512-34/+208
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1040: Trait beginnings r=matklad a=flodiebold This adds some very simple trait method resolution, going through traits in scope, looking for methods of the given name, and checking very naively whether there's an impl for the given type and trait. Co-authored-by: Florian Diebold <[email protected]>
| * | | Clean up comments / use nicer Iterator methodsFlorian Diebold2019-03-252-10/+15
| | | |
| * | | Implement a very naive implements checkFlorian Diebold2019-03-254-12/+50
| | | | | | | | | | | | | | | | ... to make the infer_trait_method_simple test have the correct result.
| * | | Basics for trait method resolutionFlorian Diebold2019-03-2511-25/+156
|/ / /
* | | Merge #1049bors[bot]2019-03-251-2/+17
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 1049: Add description & example for inlining local variable r=matklad a=gfreezy Co-authored-by: gfreezy <[email protected]>
| * | markdown syntaxgfreezy2019-03-251-2/+2
| | |
| * | add desc and examples for inline variable actiongfreezy2019-03-251-0/+15
|/ /
| * Assist to flip (some) binary expressions.Marco Groppo2019-03-253-88/+151
|/ | | | This assist can flip the following operators: ==, !=, >, >=, <, <=.
* Merge #1037bors[bot]2019-03-252-0/+300
|\ | | | | | | | | | | | | | | 1037: inline immutable local varialbe r=matklad a=gfreezy resolved #1033 Co-authored-by: gfreezy <[email protected]>
| * use | instead of multiple match armsgfreezy2019-03-251-27/+27
| |
| * inline immutable local varialbegfreezy2019-03-252-0/+300
| |
* | Merge #1034bors[bot]2019-03-2515-165/+424
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1034: HIR diagnostics API r=matklad a=matklad This PR introduces diagnostics API for HIR, so we can now start issuing errors and warnings! Here are requirements that this solution aims to fulfill: * structured diagnostics: rather than immediately rendering error to string, we provide a well-typed blob of data with error-description. These data is used by IDE to provide fixes * open set diagnostics: there's no single enum with all possible diagnostics, which hopefully should result in better modularity The `Diagnostic` trait describes "a diagnostic", which can be downcast to a specific diagnostic kind. Diagnostics are expressed in terms of macro-expanded syntax tree: they store pointers to syntax nodes. Diagnostics are self-contained: you don't need any context, besides `db`, to fully understand the meaning of a diagnostic. Because diagnostics are tied to the source, we can't store them in salsa. So subsystems like type-checking produce subsystem-local diagnostic (which is a closed `enum`), which is expressed in therms of subsystem IR. A separate step converts these proto-diagnostics into `Diagnostic`, by merging them with source-maps. Note that this PR stresses type-system quite a bit: we now type-check every function in open files to compute errors! Discussion on Zulip: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Diagnostics.20API Co-authored-by: Aleksey Kladov <[email protected]>
| * | move tests to where they belongAleksey Kladov2019-03-254-44/+32
| | |
| * | simplifyAleksey Kladov2019-03-251-6/+1
| | |
| * | tweak diagnostics APIAleksey Kladov2019-03-253-11/+16
| | |
| * | test diagnosticsAleksey Kladov2019-03-253-1/+61
| | |
| * | more enterprisey diagnostics setupAleksey Kladov2019-03-253-59/+75
| | |
| * | fixesAleksey Kladov2019-03-252-4/+3
| | |
| * | check impls as wellAleksey Kladov2019-03-252-1/+10
| | |
| * | cleanupAleksey Kladov2019-03-256-51/+70
| | |
| * | switch modules to new diagnosticsAleksey Kladov2019-03-258-135/+156
| | |
| * | allow dyn diagnosticsAleksey Kladov2019-03-256-33/+112
| | |
| * | diagnosticsAleksey Kladov2019-03-256-6/+74
| | |