aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge #1072bors[bot]2019-03-314-3/+43
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1072: recognize async move blocks r=matklad a=memoryruins closes #1053 Co-authored-by: memoryruins <[email protected]>
| * | | | | add test for async blocksmemoryruins2019-03-282-0/+40
| | | | | |
| * | | | | recognize async movememoryruins2019-03-282-3/+3
| | |_|_|/ | |/| | |
* | | | | Merge #1077bors[bot]2019-03-3133-507/+916
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1077: Improve parsing of type bounds r=matklad a=vipentti This adds new TYPE_BOUND_LIST and TYPE_BOUND syntax kinds. These are now used when parsing type bounds. In addition parsing paths inside a bound now does not recursively parse paths, rather they are treated as separate bounds, separated by +. Basically now the generic params `struct S<T: 'a + ?Sized + (Copy)>;` in will be parsed as ``` TYPE_PARAM_LIST@[8; 33) L_ANGLE@[8; 9) TYPE_PARAM@[9; 32) NAME@[9; 10) IDENT@[9; 10) "T" COLON@[10; 11) WHITESPACE@[11; 12) TYPE_BOUND_LIST@[12; 32) TYPE_BOUND@[12; 14) LIFETIME@[12; 14) "'a" WHITESPACE@[14; 15) PLUS@[15; 16) WHITESPACE@[16; 17) TYPE_BOUND@[17; 23) QUESTION@[17; 18) PATH_TYPE@[18; 23) PATH@[18; 23) PATH_SEGMENT@[18; 23) NAME_REF@[18; 23) IDENT@[18; 23) "Sized" WHITESPACE@[23; 24) PLUS@[24; 25) WHITESPACE@[25; 26) TYPE_BOUND@[26; 32) L_PAREN@[26; 27) PATH_TYPE@[27; 31) PATH@[27; 31) PATH_SEGMENT@[27; 31) NAME_REF@[27; 31) IDENT@[27; 31) "Copy" R_PAREN@[31; 32) R_ANGLE@[32; 33) ``` Previously it was parsed, with the paths nested: ``` TYPE_PARAM_LIST@[8; 33) L_ANGLE@[8; 9) TYPE_PARAM@[9; 32) NAME@[9; 10) IDENT@[9; 10) "T" COLON@[10; 11) WHITESPACE@[11; 12) LIFETIME@[12; 14) "'a" WHITESPACE@[14; 15) PLUS@[15; 16) WHITESPACE@[16; 17) QUESTION@[17; 18) PATH_TYPE@[18; 32) PATH@[18; 23) PATH_SEGMENT@[18; 23) NAME_REF@[18; 23) IDENT@[18; 23) "Sized" WHITESPACE@[23; 24) PLUS@[24; 25) WHITESPACE@[25; 26) L_PAREN@[26; 27) PATH_TYPE@[27; 31) PATH@[27; 31) PATH_SEGMENT@[27; 31) NAME_REF@[27; 31) IDENT@[27; 31) "Copy" R_PAREN@[31; 32) R_ANGLE@[32; 33) ``` Looking for feedback. Co-authored-by: Ville Penttinen <[email protected]>
| * | | | | Add trait ast::TypeBoundsOwnerVille Penttinen2019-03-313-5/+21
| | | | | |
| * | | | | Update testsVille Penttinen2019-03-313-67/+115
| | | | | |
| * | | | | Change parsing bounds in path_typesVille Penttinen2019-03-312-11/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now bounds inside a path are parsed as DYN_TRAIT_TYPE, previously they would be parsed as `PATH_TYPE` followed by `TYPE_BOUND_LIST`. Basically this means `Box<T + 'f>` is now parsed almost the same as `Box<dyn T + 'f>` with the exception of not having the `dyn` keyword.
| * | | | | Move parsing a single TYPE_BOUND to a separate functionVille Penttinen2019-03-301-19/+26
| | | | | |
| * | | | | Update testsVille Penttinen2019-03-3025-418/+634
| | | | | |
| * | | | | Add new TYPE_BOUND_LIST and TYPE_BOUND syntax kindsVille Penttinen2019-03-305-2/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are now used when parsing type bounds. In addition parsing paths inside a bound now does not recursively parse paths, rather they are treated as separate bounds, separated by +.
* | | | | | kill ra.el: it is superseeded by the lsp integraionAleksey Kladov2019-03-301-128/+0
|/ / / / /
* | | | | Merge #1075bors[bot]2019-03-304-6/+29
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1075: Fix parsing <= in type_args r=matklad a=vipentti Fixes #1074 Co-authored-by: Ville Penttinen <[email protected]>
| * | | | | Fix parsing <= in type_argsVille Penttinen2019-03-304-6/+29
|/ / / / /
* / / / / fix typoAleksey Kladov2019-03-291-1/+1
|/ / / /
* | | | Merge #1071bors[bot]2019-03-281-1/+1
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 1071: Fix emacs-lsp runnables support with native json r=matklad a=flodiebold (In that case args is a vector, which string-join doesn't like.) Co-authored-by: Florian Diebold <[email protected]>
| * | | Fix emacs-lsp runnables support with native jsonFlorian Diebold2019-03-281-1/+1
|/ / / | | | | | | | | | (In that case args is a vector, which string-join doesn't like.)
* | | Merge #1070bors[bot]2019-03-283-1/+21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1070: Support extern_crate_self r=matklad a=memoryruins closes #1069 Co-authored-by: memoryruins <[email protected]>
| * | | Add tests to ra_syntax for extern_crate_selfmemoryruins2019-03-282-1/+17
| | | |
| * | | Add extern_crate_self to ra_parser.memoryruins2019-03-281-0/+4
|/ / /
* | | Merge #1066bors[bot]2019-03-272-7/+7
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 1066: update salsa some more r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | update salsa some moreAleksey Kladov2019-03-272-7/+7
|/ /
* | Merge #1063bors[bot]2019-03-272-7/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | 1063: :arrow_up: salsa r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | :arrow_up: salsaAleksey Kladov2019-03-272-7/+7
|/ /
* | Merge #1061bors[bot]2019-03-271-1/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 1061: Use EXE extension for pre-commit hook on Window r=matklad a=hban Tested on Git Bash, CMD and Powershell. Closes: #875 Co-authored-by: Hrvoje Ban <[email protected]>
| * | Use EXE extension for pre-commit hook on WindowHrvoje Ban2019-03-271-1/+5
|/ /
* | 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!