aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1757bors[bot]2019-09-0312-158/+427
|\ | | | | | | | | | | | | | | | | | | | | | | 1757: Assoc type bindings r=flodiebold a=flodiebold This adds support for type bindings (bounds like `where T: Iterator<Item = u32>`). It doesn't yet work in as many situations as I'd like because of some [Chalk problems](https://github.com/rust-lang/chalk/issues/234). But it works in some situations, and will at least not bitrot this way ;) (part of the problem is that we use `Normalize` to normalize associated types, but produce `ProjectionEq` goals from where clauses, so Chalk can't normalize using the environment; this would be fixed by using `ProjectionEq` for normalization, which I think is the 'proper' way, but then we'd run into those ambiguity problems everywhere...) Co-authored-by: Florian Diebold <[email protected]>
| * Make type walking infrastructure a bit nicerFlorian Diebold2019-09-0310-135/+134
| | | | | | | | | | If/when we switch to using Chalk's Ty, we'll need to replace this by its `Fold` trait, but I didn't want to import the whole thing just yet.
| * Properly format `impl Trait<Type = Foo>` typesFlorian Diebold2019-09-032-23/+97
| | | | | | | | | | | | It's a bit complicated because we basically have to 'undo' the desugaring, and the result is very dependent on the specifics of the desugaring and will probably produce weird results otherwise.
| * Add support for associated type bindings (`where Trait<Type = X>`)Florian Diebold2019-09-036-52/+183
| |
| * Add test for assoc type bindingsFlorian Diebold2019-09-031-0/+65
|/
* Merge #1756bors[bot]2019-09-038-70/+127
|\ | | | | | | | | | | | | | | 1756: Correctly build BodySourceMap for macro-expanded expressions r=flodiebold a=matklad r? @flodiebold Co-authored-by: Aleksey Kladov <[email protected]>
| * Correctly build BodySourceMap for macro-expanded expressionsAleksey Kladov2019-09-038-70/+127
| |
* | Merge #1754bors[bot]2019-09-033-129/+136
|\| | | | | | | | | | | | | | | 1754: slightly simplify expr lowering flow r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * slightly simplify expr lowering flowAleksey Kladov2019-09-033-129/+136
| |
* | Merge #1753bors[bot]2019-09-034-659/+672
|\| | | | | | | | | | | | | | | 1753: clearer ignore r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * clearer ignoreAleksey Kladov2019-09-031-1/+1
| |
| * remove needless refsAleksey Kladov2019-09-031-2/+2
| |
| * use recrod terminology for hir::PatAleksey Kladov2019-09-033-8/+7
| |
| * move expr lowering to lowerAleksey Kladov2019-09-033-653/+667
|/
* Merge #1752bors[bot]2019-09-02174-9105/+9432
|\ | | | | | | | | | | | | | | 1752: Always wrap blocks into block expressions r=flodiebold a=matklad This way, things like function bodies are expressions, and we don't have to single them out Co-authored-by: Aleksey Kladov <[email protected]>
| * fix assistsAleksey Kladov2019-09-025-61/+92
| |
| * fix hir for new block syntaxAleksey Kladov2019-09-0214-57/+72
| |
| * fix generated ASTAleksey Kladov2019-09-023-3/+4
| |
| * update test dataAleksey Kladov2019-09-02150-8970/+9245
| |
| * always wrap block into an expressionAleksey Kladov2019-09-025-14/+19
|/
* Merge #1751bors[bot]2019-09-024-11/+8
|\ | | | | | | | | | | | | | | 1751: remove useless trait r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * remove useless traitAleksey Kladov2019-09-024-11/+8
| |
* | Merge #1750bors[bot]2019-09-021-1/+1
|\ \ | |/ |/| | | | | | | | | | | 1750: remove needless clone r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * remove needless cloneAleksey Kladov2019-09-021-1/+1
|/
* Merge #1749bors[bot]2019-09-029-289/+188
|\ | | | | | | | | | | | | | | 1749: simplify r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * simplifyAleksey Kladov2019-09-026-214/+117
| |
| * cleanupAleksey Kladov2019-09-025-90/+86
|/
* Merge #1737bors[bot]2019-09-027-27/+110
|\ | | | | | | | | | | | | | | | | | | | | | | 1737: Report type mismatches in analysis-stats r=matklad a=flodiebold Only the number usually; each one individually when running with `-v`. Getting the file/line locations for the exprs was really annoying and I had to make some stuff public (that I didn't remember why it would be `pub(crate)`); maybe I missed some easier way? It would be nice to have some general way for mapping locations :thinking: This reports 1768 mismatches on RA currently; from skimming, this seems to be mostly various kinds of coercions, though there were also some other things. Co-authored-by: Florian Diebold <[email protected]>
| * Add an expr_source method analogous to the source methods in the code modelFlorian Diebold2019-09-028-60/+107
| | | | | | | | ... and use that instead of exposing the source map.
| * Report type mismatches in analysis-statsFlorian Diebold2019-09-023-8/+44
|/ | | | Only the number usually; each one individually when running with -v.
* Merge #1748bors[bot]2019-09-022-3/+3
|\ | | | | | | | | | | | | | | 1748: fix links r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * fix linksAleksey Kladov2019-09-022-3/+3
| |
* | Merge #1747bors[bot]2019-09-029-4/+120
|\| | | | | | | | | | | | | | | 1747: start GitHub pages r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * start GitHub pagesAleksey Kladov2019-09-029-4/+120
|/
* Merge #1745bors[bot]2019-09-014-11/+8
|\ | | | | | | | | | | | | | | 1745: :arrow_up: once_cell r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: once_cellAleksey Kladov2019-09-014-11/+8
|/
* Merge #1742bors[bot]2019-08-318-221/+172
|\ | | | | | | | | | | | | | | 1742: cleanup main loop r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * cleanup main loopAleksey Kladov2019-08-318-221/+172
|/
* Merge #1740bors[bot]2019-08-309-193/+161
|\ | | | | | | | | | | | | | | 1740: :arrow_up: lsp-server r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * inline thread-workerAleksey Kladov2019-08-306-109/+77
| |
| * :arrow_up: lsp-serverAleksey Kladov2019-08-305-85/+85
| |
* | Merge #1739bors[bot]2019-08-3014-725/+141
|\| | | | | | | | | | | | | | | 1739: move lsp-server to a separate repository r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * move lsp-server to a separate repositoryAleksey Kladov2019-08-3014-725/+141
|/
* Merge #1738bors[bot]2019-08-2926-1486/+1446
|\ | | | | | | | | | | | | | | 1738: :arrow_up: insta r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * :arrow_up: instaAleksey Kladov2019-08-2926-1486/+1446
|/
* 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
| |