aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #3960bors[bot]2020-04-134-58/+141
|\ | | | | | | | | | | | | | | | | | | | | | | 3960: ellipsis in tuple patterns r=JoshMcguigan a=JoshMcguigan This PR lowers ellipsis in tuple patterns. It fixes a bug in the way ellipsis were previously lowered (by replacing the ellipsis with a single `Pat::Wild` no matter how many items the `..` was taking the place of). It also uses this new information to properly handle `..` in tuple struct patterns when perform match statement exhaustiveness checks. While this PR provides the building blocks for match statement exhaustiveness checks for tuples, there are some additional challenges there, so that is still unimplemented (unlike tuple structs). Co-authored-by: Josh Mcguigan <[email protected]>
| * handle tuple patterns with ellipsisJosh Mcguigan2020-04-134-58/+141
| |
* | Remove more unnecessary bracesLaurențiu Nicola2020-04-121-2/+2
|/
* Merge #3938bors[bot]2020-04-122-12/+253
|\ | | | | | | | | | | | | | | | | | | 3938: fix missing match arm false positive r=flodiebold a=JoshMcguigan This fixes #3932 by skipping the missing match arm diagnostic in the case any of the match arms don't type check properly against the match expression. I think this is the appropriate behavior for this diagnostic, since `is_useful` relies on all match arms being well formed, and the case of a malformed match arm should probably be handled by a different diagnostic. Co-authored-by: Josh Mcguigan <[email protected]>
| * missing match arm add test cases to demonstrate enum tuple struct with ↵Josh Mcguigan2020-04-121-0/+64
| | | | | | | | ellipsis behavior
| * missing match arms add test cases to demonstrate behavior of tuple with patternJosh Mcguigan2020-04-121-0/+75
| |
| * missing match arm add test for partially diverging typeJosh Mcguigan2020-04-111-0/+21
| |
| * missing match arms add tests for match expression divergingJosh Mcguigan2020-04-111-0/+77
| |
| * fix match arm false positiveJosh Mcguigan2020-04-112-12/+16
| |
* | Merge #3955bors[bot]2020-04-1118-96/+148
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3955: Align grammar for record patterns and literals r=matklad a=matklad The grammar now looks like this [name_ref :] pat bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Align grammar for record patterns and literalsAleksey Kladov2020-04-1117-89/+144
| | | | | | | | | | | | | | | | | | The grammar now looks like this [name_ref :] pat
| * | Remove dead codeAleksey Kladov2020-04-111-7/+4
| | |
* | | Remove #[should_panic] from call_info testsJeremy Kolb2020-04-111-6/+15
|/ /
* | Merge #3925bors[bot]2020-04-114-1/+247
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 3925: Implement assist "Reorder field names" r=matklad a=geoffreycopin This PR implements the "Reorder record fields" assist as discussed in issue #3821 . Adding a `RecordFieldPat` variant to the `Pat` enum seemed like the easiest way to handle the `RecordPat` children as a single sequence of elements, maybe there is a better way ? Co-authored-by: Geoffrey Copin <[email protected]>
| * | Generate docGeoffrey Copin2020-04-111-0/+15
| | |
| * | Fix doc testsGeoffrey Copin2020-04-111-2/+1
| | |
| * | Add documentation commentGeoffrey Copin2020-04-111-0/+16
| | |
| * | Avoid adding a RecordFieldPat variant to the Pat enumGeoffrey Copin2020-04-113-48/+48
| | |
| * | Remove Option unwrapingGeoffrey Copin2020-04-111-3/+3
| | |
| * | Implement assist "Reorder field names"Geoffrey Copin2020-04-094-2/+218
| | |
* | | Merge #3951bors[bot]2020-04-1117-121/+180
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3951: Simplify records grammar r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Remove dead codeAleksey Kladov2020-04-118-55/+40
| | | |
| * | | Make records grammar more orthogonalAleksey Kladov2020-04-1113-68/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used name [: expr] grammar before, now it is [name :] expr which makes things simpler
* | | | Merge #3944bors[bot]2020-04-114-14/+65
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3944: Look up trait impls by self type r=matklad a=flodiebold This speeds up inference in analysis-stats by ~30% (even more with the recursive solver). There's a slight difference in inferred types, which I think comes from pre-existing wrong handling of error types in impls, so I think it's fine. Co-authored-by: Florian Diebold <[email protected]>
| * | | Look up impls by self typeFlorian Diebold2020-04-114-14/+65
| | | | | | | | | | | | | | | | | | | | This speeds up inference in analysis-stats by ~30% (even more with the recursive solver).
* | | | Make incremental nameres test harderAleksey Kladov2020-04-111-0/+6
| | | |
* | | | Avoid cyclic queries in name resolution when processing enumsAleksey Kladov2020-04-113-15/+48
| | | |
* | | | Align namingAleksey Kladov2020-04-114-6/+5
| | | |
* | | | Remove code duplicationAleksey Kladov2020-04-112-5/+2
| | | |
* | | | Use Expander for cfg handling in structsAleksey Kladov2020-04-111-10/+10
| | | |
* | | | Use Expander for cfg handling in implsAleksey Kladov2020-04-111-13/+14
| | | |
* | | | Pull Expander upAleksey Kladov2020-04-113-11/+24
| | | |
* | | | SimplifyAleksey Kladov2020-04-112-8/+8
| | | |
* | | | Merge pull request #3935 from cjhopman/todoAleksey Kladov2020-04-113-18/+21
|\ \ \ \ | |/ / / |/| | | Change missing impl assist to use todo!() instead of unimplemented()
| * | | Change missing impl assist to use todo!() instead of unimplemented()Chris Hopman2020-04-103-18/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | todo!() "Indicates unfinished code" (https://doc.rust-lang.org/std/macro.todo.html) Rust documentation provides further clarification: > The difference between unimplemented! and todo! is that while todo! > conveys an intent of implementing the functionality later and the > message is "not yet implemented", unimplemented! makes no such claims. todo!() seems more appropriate for assists that insert missing impls.
* | | | Merge pull request #3910 from lnicola/fn-named-param-hintAleksey Kladov2020-04-111-5/+12
|\ \ \ \ | | | | | | | | | | Hide parameter hints for single-argument functions with the same name
| * | | | Hide parameter hints for single-argument functions with the same nameLaurențiu Nicola2020-04-091-5/+12
| | | | |
* | | | | Merge #3920bors[bot]2020-04-117-5/+551
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3920: Implement expand_task and list_macros in proc_macro_srv r=matklad a=edwin0cheng This PR finish up the remain `proc_macro_srv` implementation : 1. Added dylib loading code for proc-macro crate dylib. Note that we have to add some special flags for unix loading because of a bug in old version of glibc, see https://github.com/fedochet/rust-proc-macro-panic-inside-panic-expample/issues/1 and https://github.com/rust-lang/rust/issues/60593 for details. 2. Added tests for proc-macro expansion: We use a trick here by adding `serde_derive` to dev-dependencies and calling `cargo-metadata` for searching its dylib path, and expand it in our tests. [EDIT] Note that this PR **DO NOT** implement the final glue code with rust-analzyer and proc-macro-srv yet. Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | Improve error handlingEdwin Cheng2020-04-111-24/+30
| | | | | |
| * | | | | tidy up a bitEdwin Cheng2020-04-101-50/+18
| | | | | |
| * | | | | Fix macos symbol name bugEdwin Cheng2020-04-091-1/+19
| | | | | |
| * | | | | Remove allow(unused)Edwin Cheng2020-04-091-3/+2
| | | | | |
| * | | | | Add testsEdwin Cheng2020-04-095-0/+304
| | | | | |
| * | | | | Implement expand_task and list_macrosEdwin Cheng2020-04-091-4/+27
| | | | | |
| * | | | | Add dylib loading codeEdwin Cheng2020-04-094-1/+229
| | | | | |
* | | | | | Fix non canonicallized path for crate fileEdwin Cheng2020-04-112-2/+6
| |_|_|_|/ |/| | | |
* | | | | Forward compatAleksey Kladov2020-04-108-26/+25
| |_|/ / |/| | |
* | | | Move timeit to stdxAleksey Kladov2020-04-102-16/+15
| | | |
* | | | profile queriesAleksey Kladov2020-04-101-0/+5
| | | |
* | | | Fix accidently quadratic behavior when processing includesAleksey Kladov2020-04-101-17/+19
| | | | | | | | | | | | | | | | closes #3927