aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1138bors[bot]2019-04-141-0/+2
|\ | | | | | | | | | | | | | | | | | | | | 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]>
| * Add L_DOLLAR and R_DOLLAREdwin Cheng2019-04-111-0/+2
| |
* | replace usages of `algo::generate` with `iter::successors` from stdRobin Freyler2019-04-133-18/+10
| |
* | fix typoAleksey Kladov2019-04-111-1/+1
| |
* | migrate to untyped rowanAleksey Kladov2019-04-097-155/+153
|/
* updated snapshotsLenard Pratt2019-04-074-8/+3
|
* Added ArrayExprKind,Lenard Pratt2019-04-072-2/+24
| | | | | changed the display for fixed array types, Added Array Enum to ra_hir/expr
* Added inference of array lengthLenard Pratt2019-04-072-1/+6
|
* Parse and infer tuple indicesrobojumper2019-04-069-12/+126
|
* Add proper test for literals and fixed typo bugEdwin Cheng2019-04-051-1/+1
|
* Add classify_literal and undo expose next_tokenEdwin Cheng2019-04-053-2/+11
|
* Fix literal support in token tree to ast item listEdwin Cheng2019-04-052-2/+2
|
* Parse unsafe async / const unsafe fns properlyrobojumper2019-04-034-0/+78
|
* Merge #1076bors[bot]2019-04-022-2/+12
|\ | | | | | | | | | | | | | | | | 1076: Const body inference r=flodiebold a=Lapz This is the second part of #887. I've added type inference on const bodies and introduced the DefWithBody containing Function, Const and Static. I want to add tests but im unsure on how I would go about testing that completions work. Co-authored-by: Lenard Pratt <[email protected]>
| * Added const bodies and static body to the astLenard Pratt2019-04-022-5/+12
| | | | | | | | | | | | and added inference the inference test reduce code duplication
| * Added defWithBodyLenard Pratt2019-03-302-0/+3
| |
* | simplifyAleksey Kladov2019-04-027-400/+336
| |
* | Merge #1090bors[bot]2019-04-02219-8829/+8828
|\ \ | | | | | | | | | | | | | | | | | | | | | 1090: always show token text r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | always show token textAleksey Kladov2019-04-02219-8829/+8828
| | |
* | | fix inner block doc commentsAleksey Kladov2019-04-021-1/+1
|/ /
* | add minimal commentsAleksey Kladov2019-04-025-0/+13
| |
* | rename flavor to kindAleksey Kladov2019-04-023-26/+26
| |
* | move extensions to submodulesAleksey Kladov2019-04-023-549/+566
| |
* | remove flavorAleksey Kladov2019-04-021-4/+4
| |
* | More future-proof comment kindAleksey Kladov2019-04-022-33/+52
| |
* | fix comment namingAleksey Kladov2019-04-021-10/+9
| |
* | allow empty doc commentsAleksey Kladov2019-04-021-4/+6
| |
* | add ast::tokensAleksey Kladov2019-04-023-95/+106
| |
* | simplifyAleksey Kladov2019-04-021-23/+19
| |
* | move ast traits to a separate fileAleksey Kladov2019-04-022-144/+155
| |
* | Merge #1084bors[bot]2019-04-013-37/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | 1084: remove dead code r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | remove dead codeAleksey Kladov2019-04-013-37/+0
| | |
* | | intelligently add parens when inlining local varaiblesgfreezy2019-04-012-1/+10
|/ /
* | Merge #1082bors[bot]2019-04-012-0/+95
|\ \ | | | | | | | | | | | | | | | | | | | | | 1082: Async block in argument position r=matklad a=andreytkachenko Fixes case when async block appears in argument position Co-authored-by: Andrey Tkachenko <[email protected]>
| * | Async block in argument positionAndrey Tkachenko2019-04-012-0/+95
| | |
* | | Merge #1081bors[bot]2019-04-012-6/+53
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 1081: Async closure syntax r=matklad a=robojumper Fixes #1080. Also fixes an error introduced by #1072 where something like `async move "foo"` in expression position would trigger the assertion in `block_expr`. Co-authored-by: robojumper <[email protected]>
| * | Async closure syntaxrobojumper2019-03-312-6/+53
| | |
* | | switch to new rowanAleksey Kladov2019-04-0115-800/+599
|/ /
* | Add WherePred to allow predicate access in WhereClauseVille Penttinen2019-03-314-7/+131
| | | | | | | | | | This also unifies parsing of WHERE_PRED bounds, now Lifetime bounds will also be parsed using TYPE_BOUND_LIST
* | Merge #1072bors[bot]2019-03-312-0/+40
|\ \ | | | | | | | | | | | | | | | | | | | | | 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
| |/
* | Add trait ast::TypeBoundsOwnerVille Penttinen2019-03-313-5/+21
| |
* | Update testsVille Penttinen2019-03-313-67/+115
| |
* | Update testsVille Penttinen2019-03-3025-418/+634
| |
* | Add new TYPE_BOUND_LIST and TYPE_BOUND syntax kindsVille Penttinen2019-03-302-0/+81
| | | | | | | | | | | | 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 +.
* | Fix parsing <= in type_argsVille Penttinen2019-03-302-6/+27
|/
* Add tests to ra_syntax for extern_crate_selfmemoryruins2019-03-282-1/+17
|
* Basics for trait method resolutionFlorian Diebold2019-03-252-2/+9
|
* Merge #1034bors[bot]2019-03-251-0/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| * allow dyn diagnosticsAleksey Kladov2019-03-251-0/+6
| |