aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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!
* | | | 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]>