aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge #1680bors[bot]2019-08-273-36/+221
|\ | | | | | | | | | | | | | | | | 1680: Correctly infer match with early return r=flodiebold a=SomeoneToIgnore Fixes #1505 Co-authored-by: Kirill Bulatov <[email protected]> Co-authored-by: Florian Diebold <[email protected]>
| * Small fixesKirill Bulatov2019-08-262-13/+15
| |
| * Remove redundant testsKirill Bulatov2019-08-261-63/+5
| |
| * Fix 'missing Ok in tail expr' validationFlorian Diebold2019-08-261-3/+4
| | | | | | | | | | Because of the coercion change, the type mismatch now only happens on the block expression.
| * Make infer_block not unify; add back calculate_least_upper_boundFlorian Diebold2019-08-262-30/+66
| |
| * An attempt to add the coercion logic for NeverKirill Bulatov2019-08-262-51/+98
| |
| * Properly coerce never typesKirill Bulatov2019-08-263-57/+46
| |
| * Remove extra inference testKirill Bulatov2019-08-263-26/+0
| |
| * Fix never in if expressionsKirill Bulatov2019-08-263-4/+53
| |
| * Add test marksKirill Bulatov2019-08-263-1/+16
| |
| * Fix match type inference for Never match armsKirill Bulatov2019-08-262-6/+32
| |
| * TestsKirill Bulatov2019-08-261-0/+104
|/
* Merge #1736bors[bot]2019-08-266-450/+802
|\ | | | | | | | | | | | | | | | | | | 1736: Switch to `@types/vscode` and `vscode-test` r=matklad a=bkchr The old `vscode` package is outdated and it is recommened to switch to these two new packages. This also solves a problem of a missing `.d.ts` for `vscode` in Nixos. Co-authored-by: Bastian Köcher <[email protected]>
| * Switch to `@types/vscode` and `vscode-test`Bastian Köcher2019-08-266-450/+802
| | | | | | | | | | | | The old `vscode` package is outdated and it is recommened to switch to these two new packages. This also solves a problem of a missing `.d.ts` for `vscode` in Nixos.
* | Merge #1735bors[bot]2019-08-257-15/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | 1735: :arrow_up: vfs r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | :arrow_up: vfsAleksey Kladov2019-08-257-15/+25
| | |
* | | Merge #1734bors[bot]2019-08-256-5/+319
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1734: Strip indents and empty lines in check_apply_diagnostic_fix_from_position r=matklad a=matklad Co-authored-by: Phil Ellison <[email protected]>
| * | | Strip indents and empty lines in check_apply_diagnostic_fix_from_positionPhil Ellison2019-08-251-36/+55
| | | |
| * | | Specify cursor position in ok-wrapping tests, and switch to using ↵Phil Ellison2019-08-252-35/+31
| | | | | | | | | | | | | | | | analysis_and_position function
| * | | Simplify checking return type, add new testPhil Ellison2019-08-252-23/+32
| | | |
| * | | Fix build for Diagnostic type changePhil Ellison2019-08-251-7/+4
| | | |
| * | | Cast SyntaxNodePtr to AstPtr directlyPhil Ellison2019-08-252-14/+10
| | | |
| * | | Remove reliance on expr orderingPhil Ellison2019-08-251-10/+4
| | | |
| * | | cargo formatPhil Ellison2019-08-252-23/+23
| | | |
| * | | Change test to not rely on trait inferencePhil Ellison2019-08-251-12/+7
| | | |
| * | | Check type rather than just name in ok-wrapping diagnostic. Add test for ↵Phil Ellison2019-08-253-8/+77
| | | | | | | | | | | | | | | | handling generic functions (which currently fails)
| * | | Add test that ok-wrapping handles type aliasesPhil Ellison2019-08-251-0/+38
| | | |
| * | | Mock std String and Result types in tests for ok-wrapping diagnosticPhil Ellison2019-08-253-16/+65
| | | |
| * | | Add type_mismatches to InferenceResult and use this in ok-wrapping code fixPhil Ellison2019-08-253-8/+27
| | | |
| * | | Initial implementation of Ok-wrappingPhil Ellison2019-08-254-3/+136
| |/ /
* | | Merge #1733bors[bot]2019-08-2514-108/+305
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1733: Parse arbitrarily complex `box` patterns. r=matklad a=ecstatic-morse This fully resolves the pattern part of #1412 by enabling the parsing of complex `box` patterns such as: ```rust let box Struct { box i, j: box Inner(box &x) } = todo!(); ``` This introduces a new `ast::BoxPat` (in the mold of `ast::RefPat`) that gets translated to `hir::Pat::Missing`. Co-authored-by: Dylan MacKenzie <[email protected]>
| * | Generate and bless testsDylan MacKenzie2019-08-247-85/+227
| | |
| * | Handle `Struct { box i }` syntaxDylan MacKenzie2019-08-241-0/+3
| | | | | | | | | | | | | | | | | | Named structs can have `box` patterns that will bind to their fields. This is similar to the behavior of the `ref` and `mut` fields, but is at least a little bit surprising.
| * | Centralize `box` pattern tests in `patterns.rs`Dylan MacKenzie2019-08-243-7/+6
| | |
| * | Convert `BoxPat` to `Missing` in HIRDylan MacKenzie2019-08-241-0/+1
| | |
| * | Parse `BoxPat`Dylan MacKenzie2019-08-241-19/+32
| | |
| * | Add `BoxPat` variantDylan MacKenzie2019-08-233-2/+41
|/ /
* | Merge #1732bors[bot]2019-08-231-1/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | 1732: remove wrong config from .travis.yml r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | remove wrong config from .travis.ymlAleksey Kladov2019-08-231-1/+0
|/ / | | | | | | | | | | The right key here is target_branch, not branch. However, this works anyway b/c gh-pages is the default.
* | Merge #1731bors[bot]2019-08-2378-592/+598
|\ \ | | | | | | | | | | | | | | | | | | | | | 1731: rename pos_field -> tuple_field r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | rename struct -> record, pos -> tupleAleksey Kladov2019-08-2378-592/+598
|/ /
* | Merge #1716bors[bot]2019-08-232-4/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | 1716: make ast object safe r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | make ast object safeAleksey Kladov2019-08-232-4/+15
|/ /
* | Merge #1724bors[bot]2019-08-233-132/+170
|\ \ | |/ |/| | | | | | | | | | | 1724: Refactor fill_match_arms assist to use AstBuilder facilities r=matklad a=viorina Co-authored-by: Ekaterina Babshukova <[email protected]>
| * refactor fill_match_arms assistEkaterina Babshukova2019-08-223-132/+170
| |
| |
| \
*-. \ 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