aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1815bors[bot]2019-09-271-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1815: Support correct `$crate` expansion in macros r=uHOOCCOOHu a=uHOOCCOOHu This PR makes normal use cases of `$crate` from macros work as expected. It makes more macros from `std` work. Type inference works well with `panic`, `unimplemented`, `format`, and maybe more. Sadly that `vec![1, 2, 3]` still not works, but it is not longer an issue about macro. Screenshot: ![Screenshot_20190927_022136](https://user-images.githubusercontent.com/14816024/65714465-b4568f80-e0cd-11e9-8043-dd44c2ae8040.png) Co-authored-by: uHOOCCOOHu <[email protected]>
| * Refactor `Name` ready for hygienic macrouHOOCCOOHu2019-09-261-0/+10
| |
* | Start simplifying editing APIAleksey Kladov2019-09-264-0/+103
|/
* move diff to ra_syntaxAleksey Kladov2019-09-261-0/+42
|
* keep ast creation API simpleAleksey Kladov2019-09-262-0/+136
|
* add new editing API, suitable for modifying several nodes at onceAleksey Kladov2019-09-253-0/+42
|
* fewer monomorphisationsAleksey Kladov2019-09-251-2/+2
|
* simplifyAleksey Kladov2019-09-241-4/+1
|
* Support loop as argumentkjeremy2019-09-202-0/+64
|
* Merge #1884bors[bot]2019-09-202-0/+79
|\ | | | | | | | | | | | | | | 1884: Add indexing to record_field_pat r=matklad a=kjeremy Fixes #1870 Co-authored-by: kjeremy <[email protected]>
| * Add indexing to record_field_patkjeremy2019-09-202-0/+79
| |
* | fix infinite loop in the parserAleksey Kladov2019-09-202-0/+53
|/ | | | closes #1866
* don't confuse macro with !=Aleksey Kladov2019-09-202-0/+69
| | | | closes #1871
* Support path starting with a typeuHOOCCOOHu2019-09-152-1/+4
|
* Merge #1848bors[bot]2019-09-159-7/+529
|\ | | | | | | | | | | | | | | | | | | | | | | 1848: Parse `..` as a full pattern r=matklad a=ecstatic-morse Resolves #1479. This PR implements [RFC 2707](https://github.com/rust-lang/rfcs/pull/2707) in the parser. It introduces a new `DotDotPat` AST node modeled on `PlaceholderPat` and changes the parsing of tuple and slice patterns to conform to the RFC. Notably, this PR does *not* change the resulting AST when `..` appears in a struct pattern (e.g. `Struct { a, b: c, .. }`). I *think* this is the behavior mandated by RFC 2707, but someone should confirm this. Co-authored-by: Dylan MacKenzie <[email protected]>
| * Generate `dot_dot_test`Dylan MacKenzie2019-09-152-0/+481
| |
| * Bless old tests containing a `..` patternDylan MacKenzie2019-09-155-5/+10
| |
| * Add `DotDotPat` to ASTDylan MacKenzie2019-09-152-2/+38
| | | | | | | | This is modeled on `PlaceholderPat`.
* | Add tests for underscores in `const` and `static` itemsDylan MacKenzie2019-09-153-38/+78
| |
* | Allow an underscore as the identifier in `const` itemsDylan MacKenzie2019-09-151-0/+1
|/
* Infer box expressionuHOOCCOOHu2019-09-112-3/+39
|
* add a jointness parser testsAleksey Kladov2019-09-102-0/+55
| | | | cc https://github.com/rust-lang/rust/issues/64242
* WIP: switch to fully decomposed tokens internallyAleksey Kladov2019-09-103-1/+146
|
* Fix outer doc-comments of `macro_rules`uHOOCCOOHu2019-09-093-2/+44
|
* Lower `Fn(X, Y) -> Z` pathsFlorian Diebold2019-09-072-1/+7
|
* switch to rustc_lexer crateAleksey Kladov2019-09-051-1/+1
|
* better error recovery for use treesAleksey Kladov2019-09-053-1/+60
|
* Merge #1743bors[bot]2019-09-052-0/+2
|\ | | | | | | | | | | | | | | 1743: Support `#[macro_use]` on `extern crate` r=matklad a=uHOOCCOOHu Unfortunately, #1688 is still an issue. My guess is wrong :( Co-authored-by: uHOOCCOOHu <[email protected]>
| * Support resolution of `#[macro_use] extern crate`uHOOCCOOHu2019-08-312-0/+2
| |
* | Correctly build BodySourceMap for macro-expanded expressionsAleksey Kladov2019-09-031-2/+3
| |
* | fix assistsAleksey Kladov2019-09-021-0/+20
| |
* | fix hir for new block syntaxAleksey Kladov2019-09-024-6/+6
| |
* | fix generated ASTAleksey Kladov2019-09-023-3/+4
| |
* | update test dataAleksey Kladov2019-09-02150-8970/+9245
| |
* | always wrap block into an expressionAleksey Kladov2019-09-022-11/+11
| |
* | remove useless traitAleksey Kladov2019-09-023-9/+6
| |
* | Add an expr_source method analogous to the source methods in the code modelFlorian Diebold2019-09-021-3/+2
|/ | | | ... and use that instead of exposing the source map.
* Merge #1734bors[bot]2019-08-251-0/+7
|\ | | | | | | | | | | | | | | 1734: Strip indents and empty lines in check_apply_diagnostic_fix_from_position r=matklad a=matklad Co-authored-by: Phil Ellison <[email protected]>
| * Cast SyntaxNodePtr to AstPtr directlyPhil Ellison2019-08-251-0/+7
| |
* | Generate and bless testsDylan MacKenzie2019-08-247-85/+227
| |
* | Centralize `box` pattern tests in `patterns.rs`Dylan MacKenzie2019-08-241-0/+6
| |
* | Add `BoxPat` variantDylan MacKenzie2019-08-232-2/+40
|/
* rename struct -> record, pos -> tupleAleksey Kladov2019-08-2343-421/+421
|
* make ast object safeAleksey Kladov2019-08-231-2/+10
|
*-. Merge #1721 #1723bors[bot]2019-08-222-1/+30
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1721: Impl/dyn trait r=flodiebold a=flodiebold This adds support for `impl Trait` and `dyn Trait` types as far as possible without Chalk. So we can represent them in the type system, and handle them in method resolution, but Chalk doesn't know about them yet. There's a small temporary hack here where we bypass Chalk during method resolution, so we can handle simple method calls on them and completion works. Fixes #1608. 1723: Make sysroot use `RUST_SRC_PATH` if set r=matklad a=bkchr Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
| * | Improve/fix type bound loweringFlorian Diebold2019-08-221-26/+29
| | |
| * | Add `impl Trait` and `dyn Trait` typesFlorian Diebold2019-08-222-1/+27
| |/ | | | | | | | | | | | | - refactor bounds handling in the AST a bit - add HIR for bounds - add `Ty::Dyn` and `Ty::Opaque` variants and lower `dyn Trait` / `impl Trait` syntax to them
* / Add test for nested box patternDylan MacKenzie2019-08-222-12/+49
|/
* Don't add `?` bounds as real boundsAleksey Kladov2019-08-221-0/+12
| | | | closes #1709
* :arrow_up: rustc_lexerAleksey Kladov2019-08-203-117/+75
|