aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
*-. Merge #1721 #1723bors[bot]2019-08-2211-55/+471
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| | * Make sysroot use `RUST_SRC_PATH` if setBastian Köcher2019-08-222-11/+22
| | |
| * | Improve/fix type bound loweringFlorian Diebold2019-08-223-30/+64
| | |
| * | Handle impl/dyn Trait in method resolutionFlorian Diebold2019-08-223-32/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we have one of these, the `Trait` doesn't need to be in scope to call its methods. So we need to consider this when looking for method candidates. (Actually I think the same is true when we have a bound `T: some::Trait`, but we don't handle that yet). At the same time, since Chalk doesn't handle these types yet, add a small hack to skip Chalk in method resolution and just consider `impl Trait: Trait` always true. This is enough to e.g. get completions for `impl Trait`, but since we don't do any unification we won't infer the return type of e.g. `impl Into<i64>::into()`.
| * | Add `impl Trait` and `dyn Trait` typesFlorian Diebold2019-08-228-42/+366
| |/ | | | | | | | | | | | | - 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
* | Merge #1722bors[bot]2019-08-224-13/+52
|\ \ | |/ |/| | | | | | | | | | | | | | | 1722: Parse `box` keyword in patterns below top-level r=matklad a=ecstatic-morse This extends the parser to handle patterns like `if let Some(box x) = ...` where the `box` keyword is not at the top-level. The last line of the added test caused a `ParseError`. This is a variant of #1412 which was not fixed by #1414. ~~I'm not familiar with `rust-analyzer`, otherwise I would fix this as well :smile:.~~ Co-authored-by: Dylan MacKenzie <[email protected]>
| * Add test for nested box patternDylan MacKenzie2019-08-223-12/+51
| |
| * Add BOX_KW to PATTERN_FIRSTDylan MacKenzie2019-08-221-1/+1
|/
* Merge #1719bors[bot]2019-08-221-6/+6
|\ | | | | | | | | | | | | | | 1719: :arrow_up: salsa r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: salsaAleksey Kladov2019-08-221-6/+6
|/
* Merge #1717bors[bot]2019-08-223-0/+49
|\ | | | | | | | | | | | | | | | | 1717: Don't add `?` bounds as real bounds r=flodiebold a=matklad closes #1709 Co-authored-by: Aleksey Kladov <[email protected]>
| * Don't add `?` bounds as real boundsAleksey Kladov2019-08-223-0/+49
| | | | | | | | closes #1709
* | Merge #1718bors[bot]2019-08-223-27/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | 1718: disable clap's features r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | disable clap's featuresAleksey Kladov2019-08-223-27/+2
|/ /
* | Merge #1715bors[bot]2019-08-2213-44/+172
|\ \ | |/ |/| | | | | | | | | | | 1715: Feature flags r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * implement feature flagsAleksey Kladov2019-08-2211-36/+150
| |
| * show error to the user when deserializing configAleksey Kladov2019-08-223-8/+22
| |
* | Merge #1714bors[bot]2019-08-222-16/+12
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1714: Fix syntax-highlighting for fields (`NAMED_FIELD_DEF`) r=matklad a=cynecx Before: `ralsp.function: "#ff0000"` ![image](https://user-images.githubusercontent.com/5961244/63473802-13920600-c477-11e9-93df-67c04fc67636.png) After: `ralsp.field: "#9cdcfe"` ![image](https://user-images.githubusercontent.com/5961244/63473976-a894ff00-c477-11e9-8731-269a4c942e05.png) Co-authored-by: cynecx <[email protected]>
| * Update snapshots/highlighting.html to use correct highlightingcynecx2019-08-221-2/+2
| |
| * Fix syntax-highlighting for fields (`NAMED_FIELD_DEF`)cynecx2019-08-211-14/+10
|/
* Merge #1712bors[bot]2019-08-213-3/+7
|\ | | | | | | | | | | | | | | 1712: fix default for the exlude key r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * fix default for the exlude keyAleksey Kladov2019-08-213-3/+7
|/
* Merge #1711bors[bot]2019-08-213-73/+52
|\ | | | | | | | | | | | | | | 1711: switch to jod threads r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * switch to jod threadsAleksey Kladov2019-08-213-73/+52
|/
*-. Merge #1706 #1708bors[bot]2019-08-2011-231/+224
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1706: Normalize line endings to Unix flavor on IO bounraries r=matklad a=matklad 1708: update yanked getrandom r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| | * update yanked getrandomAleksey Kladov2019-08-201-4/+4
| | |
| * | remove debug-printAleksey Kladov2019-08-201-1/+0
| | |
| * | :arrow_up: rustc_lexerAleksey Kladov2019-08-204-120/+78
| | |
| * | switch to upstream ra_vfsAleksey Kladov2019-08-203-6/+7
| | |
| * | Drop unnecessary `&'_` from implsAleksey Kladov2019-08-201-20/+20
| | |
| * | refactor TryConvWith similar to ConvWithAleksey Kladov2019-08-202-46/+27
| | |
| * | translate \n -> \r\n on the way outAleksey Kladov2019-08-207-33/+50
| | |
| * | make CTX type param instead of assoc typeAleksey Kladov2019-08-201-34/+25
| | | | | | | | | | | | that way, we can implement ConvWith<&'_ CTX> for different lifetimes
| * | add tests for crlfAleksey Kladov2019-08-201-0/+46
| | |
| * | minorAleksey Kladov2019-08-201-1/+1
|/ /
* | Merge #1707bors[bot]2019-08-201-2/+2
|\ \ | |/ |/| | | | | | | | | | | 1707: make sure lockfile is used for cargo install r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * make sure lockfile is used for cargo installAleksey Kladov2019-08-201-2/+2
|/
* Merge #1703bors[bot]2019-08-197-17/+42
|\ | | | | | | | | | | | | | | 1703: don't load sysroot in most heavy tests r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * don't load sysroot in most heavy testsAleksey Kladov2019-08-197-17/+42
| |
* | Merge #1702bors[bot]2019-08-193-8/+33
|\ \ | |/ |/| | | | | | | | | | | 1702: replace heck with just ascii transformation r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * replace heck with just ascii transformationAleksey Kladov2019-08-193-8/+33
| |
* | Merge #1701bors[bot]2019-08-191-11/+8
|\ \ | |/ |/| | | | | | | | | | | | | | | 1701: qualify ast types with `ast::` r=matklad a=matklad (only the last commit is relevant, the rest are from #1700) bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * qualify ast types with `ast::`Aleksey Kladov2019-08-191-11/+8
| | | | | | | | | | By convention, ast nodes should always be used as `ast::FnDef`. This is to avoid confusion with similarly-named hir types.
* | Merge #1700bors[bot]2019-08-1919-539/+547
|\| | | | | | | | | | | | | | | 1700: remove ast::*Kind enums r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * remove ast::*Kind from ra_ide_apiAleksey Kladov2019-08-195-21/+19
| |
| * remove ast::*Kind enums from assistsAleksey Kladov2019-08-195-45/+45
| |
| * remove ast::*Kind from hirAleksey Kladov2019-08-196-83/+86
| |
| * remove ast::*Kind enumsAleksey Kladov2019-08-193-390/+397
|/ | | | With the new owned trees, we don't need an indirection here
* Merge #1699bors[bot]2019-08-191-42/+6
|\ | | | | | | | | | | | | | | 1699: :arrow_up: vfs r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: vfsAleksey Kladov2019-08-191-42/+6
| |