aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #1895bors[bot]2019-09-227-23/+173
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1895: Handle associated type shorthand (`T::Item`) (Second attempt) r=flodiebold a=flodiebold This is only allowed for generic parameters (including `Self` in traits), and special care needs to be taken to not run into cycles while resolving it, because we use the where clauses of the generic parameter to find candidates for the trait containing the associated type, but the where clauses may themselves contain instances of short-hand associated types. In some cases this is even fine, e.g. we might have `T: Trait<U::Item>, U: Iterator`. If there is a cycle, we'll currently panic, which isn't great, but better than overflowing the stack... Co-authored-by: Florian Diebold <[email protected]>
| * Handle projection types from ChalkFlorian Diebold2019-09-221-1/+5
| |
| * Handle associated type shorthand (`T::Item`)Florian Diebold2019-09-227-392/+538
| | | | | | | | | | | | | | | | | | | | | | | | This is only allowed for generic parameters (including `Self` in traits), and special care needs to be taken to not run into cycles while resolving it, because we use the where clauses of the generic parameter to find candidates for the trait containing the associated type, but the where clauses may themselves contain instances of short-hand associated types. In some cases this is even fine, e.g. we might have `T: Trait<U::Item>, U: Iterator`. If there is a cycle, we'll currently panic, which isn't great, but better than overflowing the stack...
* | remove obsolete TOODAleksey Kladov2019-09-221-1/+0
| | | | | | | | I have no idea what I've meant to fix here :-(
* | test for TOODs as wellAleksey Kladov2019-09-222-371/+371
| |
* | minor cleanupAleksey Kladov2019-09-221-1/+8
|/
* Support open source version of vscode as wellJens Hausdorf2019-09-211-1/+1
|
* Support loop as argumentkjeremy2019-09-203-0/+65
|
* Merge #1888bors[bot]2019-09-206-12/+76
|\ | | | | | | | | | | | | | | | | | | 1888: allow compiling ra_ide_api on wasm r=matklad a=matklad bors r+ this is from #1746 Co-authored-by: Aleksey Kladov <[email protected]>
| * allow compiling ra_ide_api on wasmAleksey Kladov2019-09-206-12/+76
| |
* | Simplify match armkjeremy2019-09-201-2/+1
| |
* | Merge #1884bors[bot]2019-09-203-2/+91
|\ \ | | | | | | | | | | | | | | | | | | | | | 1884: Add indexing to record_field_pat r=matklad a=kjeremy Fixes #1870 Co-authored-by: kjeremy <[email protected]>
| * | Apply suggestionkjeremy2019-09-201-3/+2
| | |
| * | Add indexing to record_field_patkjeremy2019-09-203-2/+92
| |/
* | Merge #1883bors[bot]2019-09-203-2/+40
|\ \ | | | | | | | | | | | | | | | | | | | | | 1883: Fix path attribute causing false "unresolved module" error for submodules r=matklad a=gfreezy fixed #1880 Co-authored-by: gfreezy <[email protected]>
| * | fix module attr pathgfreezy2019-09-203-2/+40
| | |
* | | fix infinite loop in the parserAleksey Kladov2019-09-203-7/+64
| |/ |/| | | | | closes #1866
* | Merge #1881bors[bot]2019-09-203-1/+70
|\ \ | |/ |/| | | | | | | | | | | 1881: don't confuse macro with != r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * don't confuse macro with !=Aleksey Kladov2019-09-203-1/+70
| | | | | | | | closes #1871
* | Merge #1850bors[bot]2019-09-202-0/+375
|\ \ | | | | | | | | | | | | | | | | | | | | | 1850: feat(assists): raw string <-> usual string manipulation r=matklad a=Geobert Fixes #1730 Co-authored-by: Geobert Quach <[email protected]>
| * | feat(assists): Apply commentsGeobert Quach2019-09-191-100/+59
| | |
| * | feat(assists): Rename `escape_quote` to `escape_double_quote`Geobert Quach2019-09-191-3/+3
| | |
| * | feature(assists): Fix regressionGeobert Quach2019-09-191-2/+2
| | |
| * | feat(assists): manage `"` when removing hash and make_usual_stringGeobert Quach2019-09-191-5/+90
| | |
| * | feat(assists): raw string <-> usual string manipulationGeobert Quach2019-09-192-0/+331
| | | | | | | | | | | | Fixes #1730
* | | A few doc commentskjeremy2019-09-191-1/+9
|/ /
* | Replace usages of bump_any with bumpkjeremy2019-09-1914-87/+87
| |
* | Merge #1853bors[bot]2019-09-1913-138/+294
|\ \ | |/ |/| | | | | | | | | | | | | 1853: Introduce FromSource trait r=matklad a=viorina The idea is to provide an ability to get HIR from AST in a more general way than it's possible using `source_binder`. It also could help with #1622 fixing. Co-authored-by: Ekaterina Babshukova <[email protected]>
| * introduce FromSource traitEkaterina Babshukova2019-09-1913-138/+294
| |
* | Merge #1873bors[bot]2019-09-191-0/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 1873: `fold_kind`: `MATCH_ARM_LIST => FoldKind::Block` r=matklad a=Centril As suggested by @matklad in https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/folding.20of.20.60match.60.20and.20.60if.60/near/176109093. This should let folks fold all the arms in a `match` expression rather than just each arm individually. Co-authored-by: Mazdak Farrokhzad <[email protected]>
| * | Pacify rustfmt.Mazdak Farrokhzad2019-09-191-4/+1
| | |
| * | `fold_kind`: `MATCH_ARM_LIST => FoldKind::Block`Mazdak Farrokhzad2019-09-191-0/+18
| | |
* | | Merge #1874bors[bot]2019-09-192-34/+28
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 1874: move fold conversino to conv.rs r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | move fold conversino to conv.rsAleksey Kladov2019-09-192-34/+28
| | |
| * | fix typoAleksey Kladov2019-09-191-1/+1
| |/
* / slightly cleanup macro testsAleksey Kladov2019-09-191-185/+159
|/
* tweak installation processAleksey Kladov2019-09-182-19/+26
|
* account for impls generated by macrosAleksey Kladov2019-09-183-28/+74
|
* Merge #1862bors[bot]2019-09-1719-261/+358
|\ | | | | | | | | | | | | | | 1862: Assoc item resolution refactoring (again) r=flodiebold a=flodiebold This is #1849, with the associated type selection code removed for now. Handling cycles there will need some more thought. Co-authored-by: Florian Diebold <[email protected]>
| * Remove assoc type selection code for now to fix crashesFlorian Diebold2019-09-172-25/+10
| |
| * Add test for `T::Item` cyclesFlorian Diebold2019-09-171-0/+42
| |
| * Remove TraitItem and ImplItem in favor of AssocItemFlorian Diebold2019-09-179-93/+46
| |
| * Small review improvementsFlorian Diebold2019-09-171-5/+3
| |
| * Add test for `<T>::Item`Florian Diebold2019-09-171-10/+22
| |
| * Refactor some moreFlorian Diebold2019-09-174-57/+100
| | | | | | | | | | | | Type-relative paths (`<T>::foo`) also need to work in type context, for example `<T>::Item` is legal. So rather than returning the type ref from the resolver function, just check it before.
| * Refactor associated item resolution moreFlorian Diebold2019-09-172-124/+120
| | | | | | | | | | When resolving an associated item in value namespace, use the `Ty` lowering code for the segments before the last instead of replicating it.
| * Refactor a bit to prepare for resolving trait assoc itemsFlorian Diebold2019-09-1710-52/+83
| |
| * Resolve assoc types on type parametersFlorian Diebold2019-09-172-24/+61
| | | | | | | | | | | | E.g. `fn foo<T: Iterator>() -> T::Item`. It seems that rustc does this only for type parameters and only based on their bounds, so we also only consider traits from bounds.
| * Adapt some testsFlorian Diebold2019-09-171-12/+12
| |
* | remove confusing codeAleksey Kladov2019-09-171-31/+1
| | | | | | | | | | | | I must confess I don't really understand what this code is trying to do, but it definitely misreports changes during fixedpoint iteration, and no tests fail if I remove it, so...