aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge #897bors[bot]2019-02-2511-20/+206
|\ | | | | | | | | | | | | | | | | | | 897: Add basic const/static type inference r=flodiebold a=vipentti This adds basic const/static type inference discussed in #887. Currently the inference does not work for const/static declared inside a block. In addition the inference does not work inside the bodies of const/static. Co-authored-by: Ville Penttinen <[email protected]>
| * Move ConstSignature creation to a single methodVille Penttinen2019-02-251-17/+13
| |
| * Add static type inferenceVille Penttinen2019-02-256-12/+54
| |
| * Add const type inferenceVille Penttinen2019-02-2511-20/+168
| |
* | kill accidently commited fileAleksey Kladov2019-02-251-182/+0
| |
* | Merge #898bors[bot]2019-02-2545-108/+293
|\ \ | |/ |/| | | | | | | | | | | 898: rename type to type_alias in the AST as well r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * rename type to type_alias in the AST as wellAleksey Kladov2019-02-2545-108/+293
|/
* Merge #895bors[bot]2019-02-243-0/+103
|\ | | | | | | | | | | | | | | 895: complete patterns r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * complete patternsAleksey Kladov2019-02-243-0/+103
|/
* Merge #894bors[bot]2019-02-2412-44/+58
|\ | | | | | | | | | | | | | | 894: Rename Type => TypeAlias r=matklad a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * Rename Type => TypeAliasFlorian Diebold2019-02-2412-44/+58
|/
* Merge #892bors[bot]2019-02-248-11/+116
|\ | | | | | | | | | | | | | | | | | | 892: Type aliases r=matklad a=flodiebold This implements type aliases (i.e. `type` definitions). There's just one snag: handling recursion. E.g. `type Foo = Foo` makes type inference panic with a query cycle. I think the best way to handle this would be if Salsa provided the ability to catch cycle errors? It seems that there's some work underway to support this [here](https://github.com/salsa-rs/salsa/issues/6) and [here](https://github.com/salsa-rs/salsa/pull/147). Should we wait for this? I don't see a good way to handle this without help from Salsa. Co-authored-by: Florian Diebold <[email protected]>
| * Add test for recursive type aliasesFlorian Diebold2019-02-241-0/+14
| |
| * Implement support for type aliasesFlorian Diebold2019-02-248-11/+102
|/
* Merge #893bors[bot]2019-02-2414-331/+295
|\ | | | | | | | | | | | | | | 893: Completion presentation r=matklad a=matklad Just moves completion code around a bit, to keep logic for producing completions and logic for rendering them into completion items separate. Co-authored-by: Aleksey Kladov <[email protected]>
| * move testing functionsAleksey Kladov2019-02-2410-20/+14
| |
| * move the rest of presentation to presentationAleksey Kladov2019-02-242-50/+20
| |
| * move more code to presentationAleksey Kladov2019-02-242-88/+57
| |
| * move res completion to presentationAleksey Kladov2019-02-243-41/+42
| |
| * simplifyAleksey Kladov2019-02-241-31/+31
| |
| * move enum-variants to presentationAleksey Kladov2019-02-242-21/+21
| |
| * simplifyAleksey Kladov2019-02-244-35/+31
| |
| * move presentaion completion to presentationAleksey Kladov2019-02-242-80/+80
| |
| * move function rendering to presentationAleksey Kladov2019-02-245-24/+49
| |
| * introduce completion presentationAleksey Kladov2019-02-245-33/+42
|/ | | | | This module should remove completion rendering boilerplate from the "brains" of completion engine.
* Merge #891bors[bot]2019-02-246-0/+494
|\ | | | | | | | | | | | | | | 891: Field completion r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * complete fields in struct literalsAleksey Kladov2019-02-241-7/+16
| |
| * complete struct literalsAleksey Kladov2019-02-244-0/+78
| |
| * support upcastig in AST enumAleksey Kladov2019-02-242-0/+407
| |
* | Merge #890bors[bot]2019-02-242-6/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | 890: Clean up imports a bit r=flodiebold a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * | Clean up imports a bitFlorian Diebold2019-02-242-6/+4
|/ /
* | Merge #889bors[bot]2019-02-2418-133/+182
|\| | | | | | | | | | | | | | | | | | | | | 889: Refactor assits r=matklad a=matklad * assign unique IDs to assists so that clients could do custom stuff * specify kinds for assists, * make introduce_variable a `refactoring.extract` and make it available only when expression is selected * introduce marks to assists Co-authored-by: Aleksey Kladov <[email protected]>
| * add marks to assistsAleksey Kladov2019-02-244-47/+41
| |
| * dont show introduce variable everywhereAleksey Kladov2019-02-242-46/+42
| |
| * Assign IDs to assistsAleksey Kladov2019-02-2416-43/+102
|/
* Merge #885bors[bot]2019-02-2410-47/+288
|\ | | | | | | | | | | | | | | 885: Parse token trees directy r=matklad a=matklad This takes advantage of the recent macro refactoring to directly parse token stream into a syntax tree. Co-authored-by: Aleksey Kladov <[email protected]>
| * renameAleksey Kladov2019-02-241-8/+8
| |
| * Add a test for macro parsingAleksey Kladov2019-02-232-10/+80
| |
| * implement tt -> astAleksey Kladov2019-02-232-5/+55
| |
| * keep-textAleksey Kladov2019-02-231-10/+17
| |
| * flatten ttAleksey Kladov2019-02-231-6/+55
| |
| * token source scaffoldAleksey Kladov2019-02-231-1/+22
| |
| * add dependency on the parserAleksey Kladov2019-02-232-0/+2
| |
| * add interfaceAleksey Kladov2019-02-231-0/+5
| |
| * introduce tree builderAleksey Kladov2019-02-233-20/+61
| |
| * renameAleksey Kladov2019-02-234-23/+19
| |
* | Merge #886bors[bot]2019-02-244-64/+98
|\ \ | | | | | | | | | | | | | | | | | | | | | 886: Associated method generics r=matklad a=flodiebold Refactor associated method resolution a bit and make it work with generics. Co-authored-by: Florian Diebold <[email protected]>
| * | Refactor associated method resolution a bit and make it work with genericsFlorian Diebold2019-02-234-64/+98
|/ /
* | Merge #884bors[bot]2019-02-235-1450/+1500
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 884: Split ty.rs into several modules r=matklad a=flodiebold It was just getting too big. We now have: - ty: the `Ty` enum and helpers - ty::infer: actual type inference - ty::lower: lowering from HIR to `Ty` - ty::op: helpers for binary operations, currently Co-authored-by: Florian Diebold <[email protected]>
| * | Split ty.rs into several modulesFlorian Diebold2019-02-235-1450/+1500
|/ / | | | | | | | | | | | | | | | | It was just getting too big. We now have: - ty: the `Ty` enum and helpers - ty::infer: actual type inference - ty::lower: lowering from HIR to `Ty` - ty::op: helpers for binary operations, currently