aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1848bors[bot]2019-09-1512-17/+573
|\ | | | | | | | | | | | | | | | | | | | | | | 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
| |
| * Parse `..` as a proper patternDylan MacKenzie2019-09-151-10/+42
| |
| * Add `DotDotPat` to ASTDylan MacKenzie2019-09-154-2/+40
| | | | | | | | This is modeled on `PlaceholderPat`.
* | Merge #1847bors[bot]2019-09-156-40/+90
|\ \ | |/ |/| | | | | | | | | | | 1847: Allow an underscore as the identifier in `const` items r=matklad a=ecstatic-morse [RFC 2526](https://github.com/rust-lang/rust/issues/54912) was recently stabilized, meaning `const _: i32 = 5;` is now a valid item. Co-authored-by: Dylan MacKenzie <[email protected]>
| * 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-153-2/+12
|/
* Merge #1846bors[bot]2019-09-141-1/+1
|\ | | | | | | | | | | | | | | 1846: Remove a dbg! r=flodiebold a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * Remove a dbg!Florian Diebold2019-09-141-1/+1
|/
* Merge #1844bors[bot]2019-09-142-12/+11
|\ | | | | | | | | | | | | | | 1844: Support bare `Trait` without dyn r=flodiebold a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * Support bare `Trait` without dynFlorian Diebold2019-09-142-12/+11
|/
* Merge #1843bors[bot]2019-09-144-63/+5
|\ | | | | | | | | | | | | | | 1843: Upgrade Chalk r=flodiebold a=flodiebold ... and remove Ty::UnselectedProjection. It'll be handled differently. Co-authored-by: Florian Diebold <[email protected]>
| * Upgrade ChalkFlorian Diebold2019-09-144-63/+5
|/ | | | ... and remove Ty::UnselectedProjection. It'll be handled differently.
* Merge #1838bors[bot]2019-09-135-52/+30
|\ | | | | | | | | | | | | | | 1838: rename add_resolution -> add_scope_def r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * rename add_resolution -> add_scope_defAleksey Kladov2019-09-131-18/+0
| |
| * make PerNs non-genericAleksey Kladov2019-09-134-34/+30
| |
* | Merge #1833bors[bot]2019-09-1313-464/+534
|\| | | | | | | | | | | | | | | 1833: Specify desirable namespace when calling resolve r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Specify desirable namespace when calling resolveAleksey Kladov2019-09-1313-464/+534
|/ | | | That way, we are able to get rid of a number of unreachable statements
* Merge #1835bors[bot]2019-09-1221-141/+135
|\ | | | | | | | | | | | | | | 1835: rename AdtDef -> Adt r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * rename AdtDef -> AdtAleksey Kladov2019-09-1220-99/+90
| |
| * generalize impl_froms to nested enumsAleksey Kladov2019-09-124-58/+26
| |
| * make various enums "inherit" from AdtDefAleksey Kladov2019-09-1217-121/+156
|/
* Merge #1832bors[bot]2019-09-125-49/+59
|\ | | | | | | | | | | | | | | 1832: start cleaning up the resolution r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * start cleaning up the resolutionAleksey Kladov2019-09-125-49/+59
|/ | | | | | | Nameres related types, like `PerNs<Resolution>`, can represent unreasonable situations, like a local in a type namespace. We should clean this up, by requiring that call-site specifies the kind of resolution it expects.
* Merge #1828bors[bot]2019-09-122-1/+40
|\ | | | | | | | | | | | | | | 1828: add macros with local_inner_macros argument r=matklad a=JasperDeSutter fixes #1816 Co-authored-by: JasperDeSutter <[email protected]>
| * add macros with local_inner_macros argumentJasperDeSutter2019-09-122-1/+40
|/
* Merge #1818bors[bot]2019-09-127-4/+107
|\ | | | | | | | | | | | | | | 1818: Infer box expression r=matklad a=uHOOCCOOHu Infer `box e` to be `std::boxed::Box<T>` where `e: T` Co-authored-by: uHOOCCOOHu <[email protected]>
| * Infer box expressionuHOOCCOOHu2019-09-117-4/+107
| |
* | Merge #1821bors[bot]2019-09-125-72/+109
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1821: Macro completion tweaks r=matklad a=SomeoneToIgnore Thanks @uHOOCCOOHu for making the macro completion happen :) I've added a few tweaks to the current completion to make it a bit more convenient: * Automatically add braces and put the editor cursor inside of them: <img width="159" alt="image" src="https://user-images.githubusercontent.com/2690773/64737220-022b9f00-d4f5-11e9-8088-76d4678921ab.png"> Currently I have to add the braces manually which is a bit cumbersome. One further improvement can be to detect if macro accepts no parameters and place the cursor differently for this case. * Add an exclamation mark to the macro completion label This helps to distinguish macros from other completion items and also allows to show only macros in completion if you type `!`: <img width="722" alt="image" src="https://user-images.githubusercontent.com/2690773/64736987-8b8ea180-d4f4-11e9-8355-2ce4f83b7aa8.png"> <img width="732" alt="image" src="https://user-images.githubusercontent.com/2690773/64737214-ffc94500-d4f4-11e9-946e-1ba2db1c7fb1.png"> Additionally, automatic formatting hooks had adjusted two `help.rs` files, I've added them as a last commit to the PR even though they are not really related. Co-authored-by: Kirill Bulatov <[email protected]>
| * | Complete vec macros with square bracketsKirill Bulatov2019-09-122-3/+36
| | |
| * | Fix the formatting issuesKirill Bulatov2019-09-121-45/+45
| | |
| * | Add `!` to the macro completion labelKirill Bulatov2019-09-124-20/+24
| | |
| * | Complete macros parenthesisKirill Bulatov2019-09-124-9/+9
| | |
* | | Merge #1827bors[bot]2019-09-121-5/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1827: fix panic when fetching generics r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | fix panic when fetching genericsAleksey Kladov2019-09-121-5/+5
| | | | | | | | | | | | | | | | due to macro expansion, the root node is not always a file
* | | | Merge #1826bors[bot]2019-09-122-2/+6
|\| | | | |/ / |/| | | | | | | | | | | | | | | | | 1826: don't break parser error recovery in presence of macros r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | don't break parser error recovery in presence of macrosAleksey Kladov2019-09-122-2/+6
|/ / | | | | | | | | | | | | Parser has the invariant that `{}` are balanced. Previous code tried (unsucesfuly) maintain the same invariant for `$()` as well, but it was done in a rather ad-hoc manner: it's not at all obvious that it is possible to maintain both invariants!
* | Merge #1825bors[bot]2019-09-123-82/+116
|\ \ | | | | | | | | | | | | | | | | | | | | | 1825: add quiet mode to analysis-stats r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | add quiet mode to analysis-statsAleksey Kladov2019-09-123-82/+116
|/ /
* | Merge #1824bors[bot]2019-09-121-2/+8
|\ \ | |/ |/| | | | | | | | | | | 1824: analysis stats uses positional arg again r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * analysis stats uses positional arg againAleksey Kladov2019-09-121-2/+8
|/
* Merge #1796bors[bot]2019-09-1110-8/+334
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1796: Support completion for macros r=matklad a=uHOOCCOOHu This is based on #1795 , and fixes #1727 Also prettify hover text of macros. Some screenshorts below: Completion in item place. <img width="416" alt="Screenshot_20190910_134056" src="https://user-images.githubusercontent.com/14816024/64587159-fa72da00-d3d0-11e9-86bb-c98f169ec08d.png"> After pressing `tab`. <img width="313" alt="Screenshot_20190910_134111" src="https://user-images.githubusercontent.com/14816024/64587160-fa72da00-d3d0-11e9-9464-21e3f6957bd7.png"> Complete macros from `std`. <img width="588" alt="Screenshot_20190910_134147" src="https://user-images.githubusercontent.com/14816024/64587161-fb0b7080-d3d0-11e9-866e-5161f0d1b546.png"> Hover text. <img width="521" alt="Screenshot_20190910_134242" src="https://user-images.githubusercontent.com/14816024/64587162-fb0b7080-d3d0-11e9-8f09-ad17e3f6702a.png"> Co-authored-by: uHOOCCOOHu <[email protected]>
| * Split out `complete_macro_in_item_position`uHOOCCOOHu2019-09-113-37/+52
| |
| * Fix typouHOOCCOOHu2019-09-114-4/+4
| |
| * Show macro definition in hover textuHOOCCOOHu2019-09-101-3/+21
| |
| * Support completion for macrosuHOOCCOOHu2019-09-104-2/+295
| |
* | Merge #1797bors[bot]2019-09-112-12/+11
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1797: Use VSCode fs API's in extension r=matklad a=LDSpits This will close #1670. I've replaced the `CargoWatcher`s `Cargo.toml` check with a version that uses the `fs` API of vscode. While making this I've identified an issue with the detection of the `cargo.toml`, we can only load projects where the cargo.toml is in the root of the workspace. but that's a separate issue 😄 Co-authored-by: Lucas Spits <[email protected]>
| * | Update minimal required vscode version to 1.37Lucas Spits2019-09-101-1/+1
| | |
| * | Replace watcher file existence check with vscode.fs versionLucas Spits2019-09-091-11/+10
| | |