aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1148bors[bot]2019-04-198-20/+295
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1148: Add token_tree_to_xxx functions r=matklad a=edwin0cheng <del>As discus in PR #1147 , this PR added a `mbe::MacroKind` . Currently only 2 kind of macro are supported, `SourceFile` and `Block`.</del> Added following functions for `tt::TokenTree` and `ast::Node` conversion: * token_tree_to_expr * token_tree_to_pat * token_tree_to_ty * token_tree_to_macro_stmts * token_tree_to_macro_items And added two new syntax kind: * MACRO_ITEMS * MACRO_STMTS Co-authored-by: Edwin Cheng <[email protected]>
| * Return Result for token_tree_to_xx functionsEdwin Cheng2019-04-182-14/+24
| |
| * Add expr, pat, ty and macro_stmtsEdwin Cheng2019-04-185-15/+156
| |
| * Add MacroItems and MacroStmts in grammer.ronEdwin Cheng2019-04-187-8/+132
| |
* | Fix missing last token in mbe $repeat parsingEdwin Cheng2019-04-182-1/+24
|/
* Add `item` matcher in mbeEdwin Cheng2019-04-186-0/+70
|
* Merge #1160bors[bot]2019-04-171-8/+23
|\ | | | | | | | | | | | | | | 1160: better formatting when adding trait members r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * better formatting when adding trait membersAleksey Kladov2019-04-171-8/+23
| | | | | | | | | | | | * it's conventional not to use one-liners * new placement is more predictable, b/c it does not depend on header's length
* | Merge #1145bors[bot]2019-04-172-8/+117
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | 1145: Fix #1099, plug self type type parameters in infer_path_expr r=flodiebold a=edwin0cheng As discussed in #1099, this PR try to "plug" a `self type` type parameters in `infer_path_expr`. All the cases in 1099 was fixed and tested. And luckily, this PR fixed bug #1030 again and make the test output correct. Co-authored-by: Edwin Cheng <[email protected]>
| * RefactoringEdwin Cheng2019-04-171-51/+46
| |
| * Simpliy codeEdwin Cheng2019-04-171-60/+32
| |
| * Bug fix and add more commentsEdwin Cheng2019-04-171-22/+60
| |
| * Fix 1099Edwin Cheng2019-04-172-5/+109
| |
* | cleanup cancellationAleksey Kladov2019-04-172-13/+6
| | | | | | | | | | Now that we explicitelly exit the reading loop on exit notification, we can assume that the sender is always alive
* | Merge #1153bors[bot]2019-04-171-0/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 1153: "Restart server" command r=jrvidal a=jrvidal The only tricky aspect is that fact that once the `exit` command has been received, we no longer need to join on the reader thread. Also, I think `terminateProcesses.sh` was not working properly. In fact, the very same script from the vscode language server implementation is not working either! It's because of that I noticed the reader thread issue :open_mouth: Co-authored-by: Roberto Vidal <[email protected]>
| * | Breaks read loop on 'exit'Roberto Vidal2019-04-163-5/+17
| | |
| * | Fixes doctestRoberto Vidal2019-04-161-1/+1
| | |
| * | Adds "restart server" commandRoberto Vidal2019-04-162-6/+4
| |/
* / Add mbe stmt matcherEdwin Cheng2019-04-177-72/+119
|/
* fix testAleksey Kladov2019-04-141-17/+6
|
* add a couple of profiling pointsAleksey Kladov2019-04-143-0/+6
|
* more intuitive nameAleksey Kladov2019-04-141-11/+15
|
* filter by timeAleksey Kladov2019-04-142-26/+39
|
* cleanup syntaxAleksey Kladov2019-04-142-8/+24
|
* fast path for disabled profilerAleksey Kladov2019-04-141-8/+16
|
* switch to modern pathsAleksey Kladov2019-04-141-5/+5
|
* Refactor method candidate generation a bitFlorian Diebold2019-04-144-55/+176
| | | | | | This fixes the order in which candidates are chosen a bit (not completely though, as the ignored test demonstrates), and makes autoderef work with trait methods. As a side effect, this also makes completion of trait methods work :)
* Merge #1137bors[bot]2019-04-149-55/+142
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1137: Adds support for multiple editor workspaces on initialization r=matklad a=jrvidal OK, so this "simple hack" turned out to be way more contrived than I expected :joy: ### What works This patch only handles multi-folder editor workspaces _on initialization_. * I've found that modifying the layout of a workspace in VSCode just reloads the extension, so this hack should be enough for now. * Not sure about how emacs-lsp behaves, but we fallback gracefully to the mono-folder workspace, so it should be fine. ### What doesn't work * [x] `cargo watch` can only watch a single root folder with a `Cargo.toml`. I've left this part untouched but we could either warn that it's not supported or launch _multiple_ `cargo-watch` processes. * [x] The `rust-analyzer/runnables` command is not functional, since we don't send the correct `cwd`. * [x] Should we add some happy path test to `heavy_tests`? * [ ] Going from a single `root` to multiple `roots` leaves us with a couple of `n * m` loops that smell a bit. The number of folders in the editor workspace is probably low though. Co-authored-by: Roberto Vidal <[email protected]>
| * Modifies runnables test to use multi-workspace rootRoberto Vidal2019-04-142-29/+68
| |
| * Sends cwd info for runnables and code lensesRoberto Vidal2019-04-147-4/+36
| |
| * Adds support for multiple editor workspaces on initializationRoberto Vidal2019-04-144-25/+41
| | | | | | | | This is a quick, partial fix for #1104
* | Merge #1138bors[bot]2019-04-1413-243/+560
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1138: Add L_DOLLAR and R_DOLLAR r=matklad a=edwin0cheng As discussion in issue https://github.com/rust-analyzer/rust-analyzer/issues/1132 and PR #1125 , this PR add 2 `Syntax::Kind` : `L_DOLLAR` and `R_DOLLAR` for representing `Delimiter::None` in mbe and proc_marco. By design, It should not affect the final syntax tree, and will be discard in `TreeSink`. My original idea is handling these 2 tokens case by case, but i found that they will appear in every place in the parser (imagine `tt` matcher). So this PR only handle it in `Parser::do_bump` and `Parser::start`, although It will not fix the `expr` matcher executing order problem in original idea. Co-authored-by: Edwin Cheng <[email protected]>
| * | Fix bug and add expr , pat , ty matcherEdwin Cheng2019-04-1410-33/+307
| | |
| * | Remove skip Delimiter::None and handle DollarsEdwin Cheng2019-04-125-218/+255
| | |
| * | Add L_DOLLAR and R_DOLLAREdwin Cheng2019-04-112-0/+6
| | |
* | | Extract generic_params method to a HasGenericParams traitFlorian Diebold2019-04-147-37/+33
| | |
* | | Add Container enum to handle both kinds of container (impl/trait)Florian Diebold2019-04-144-17/+58
| | |
* | | Make callable signature handling a bit nicerFlorian Diebold2019-04-142-47/+36
| | |
* | | Some cleanupFlorian Diebold2019-04-143-98/+111
| | |
* | | More trait infrastructureFlorian Diebold2019-04-1411-51/+333
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - make it possible to get parent trait from method - add 'obligation' machinery for checking that a type implements a trait (and inferring facts about type variables from that) - handle type parameters of traits (to a certain degree) - improve the hacky implements check to cover enough cases to exercise the handling of traits with type parameters - basic canonicalization (will probably also be done by Chalk)
* | | Get substs for trait refs in impl blocksFlorian Diebold2019-04-146-44/+85
| |/ |/|
* | replace usages of `algo::generate` with `iter::successors` from stdRobin Freyler2019-04-136-24/+17
| |
* | cleanupsAleksey Kladov2019-04-132-13/+12
| |
* | slight encapsulationAleksey Kladov2019-04-132-9/+13
| |
* | move ScopeEntryWithSyntaxAleksey Kladov2019-04-134-37/+34
| |
* | drop obsolete fixmeAleksey Kladov2019-04-132-5/+4
| |
* | make expr scope stuff privateAleksey Kladov2019-04-131-11/+9
| |
* | make resolver privateAleksey Kladov2019-04-136-26/+23
| |
* | hide resolverAleksey Kladov2019-04-134-9/+17
| |
* | fold ScopeWithSyntax into SourceAnalyzerAleksey Kladov2019-04-137-193/+159
| |