Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use TypeAscriptionOwner | Ville Penttinen | 2019-02-26 | 2 | -12/+15 |
| | | | | | | This replaces places where we would use node + node.type_ref() with things that have an ascribed type, with using the TypeAscriptionOwner as the trait bound so we can simply pass the node. | ||||
* | Add new trait TypeAscriptionOwner | Ville Penttinen | 2019-02-26 | 3 | -9/+36 |
| | | | | | This trait should be implemented for nodes which have an ascribed type, e.g. thing : Type. Such as let, const, static, param, named struct fields. | ||||
* | Merge #897 | bors[bot] | 2019-02-25 | 11 | -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 method | Ville Penttinen | 2019-02-25 | 1 | -17/+13 |
| | | |||||
| * | Add static type inference | Ville Penttinen | 2019-02-25 | 6 | -12/+54 |
| | | |||||
| * | Add const type inference | Ville Penttinen | 2019-02-25 | 11 | -20/+168 |
| | | |||||
* | | kill accidently commited file | Aleksey Kladov | 2019-02-25 | 1 | -182/+0 |
| | | |||||
* | | rename type to type_alias in the AST as well | Aleksey Kladov | 2019-02-25 | 45 | -108/+293 |
|/ | |||||
* | complete patterns | Aleksey Kladov | 2019-02-24 | 3 | -0/+103 |
| | |||||
* | Rename Type => TypeAlias | Florian Diebold | 2019-02-24 | 12 | -44/+58 |
| | |||||
* | Add test for recursive type aliases | Florian Diebold | 2019-02-24 | 1 | -0/+14 |
| | |||||
* | Implement support for type aliases | Florian Diebold | 2019-02-24 | 8 | -11/+102 |
| | |||||
* | move testing functions | Aleksey Kladov | 2019-02-24 | 10 | -20/+14 |
| | |||||
* | move the rest of presentation to presentation | Aleksey Kladov | 2019-02-24 | 2 | -50/+20 |
| | |||||
* | move more code to presentation | Aleksey Kladov | 2019-02-24 | 2 | -88/+57 |
| | |||||
* | move res completion to presentation | Aleksey Kladov | 2019-02-24 | 3 | -41/+42 |
| | |||||
* | simplify | Aleksey Kladov | 2019-02-24 | 1 | -31/+31 |
| | |||||
* | move enum-variants to presentation | Aleksey Kladov | 2019-02-24 | 2 | -21/+21 |
| | |||||
* | simplify | Aleksey Kladov | 2019-02-24 | 4 | -35/+31 |
| | |||||
* | move presentaion completion to presentation | Aleksey Kladov | 2019-02-24 | 2 | -80/+80 |
| | |||||
* | move function rendering to presentation | Aleksey Kladov | 2019-02-24 | 5 | -24/+49 |
| | |||||
* | introduce completion presentation | Aleksey Kladov | 2019-02-24 | 5 | -33/+42 |
| | | | | | This module should remove completion rendering boilerplate from the "brains" of completion engine. | ||||
* | Merge #891 | bors[bot] | 2019-02-24 | 6 | -0/+494 |
|\ | | | | | | | | | | | | | | | 891: Field completion r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]> | ||||
| * | complete fields in struct literals | Aleksey Kladov | 2019-02-24 | 1 | -7/+16 |
| | | |||||
| * | complete struct literals | Aleksey Kladov | 2019-02-24 | 4 | -0/+78 |
| | | |||||
| * | support upcastig in AST enum | Aleksey Kladov | 2019-02-24 | 2 | -0/+407 |
| | | |||||
* | | Clean up imports a bit | Florian Diebold | 2019-02-24 | 2 | -6/+4 |
|/ | |||||
* | add marks to assists | Aleksey Kladov | 2019-02-24 | 4 | -47/+41 |
| | |||||
* | dont show introduce variable everywhere | Aleksey Kladov | 2019-02-24 | 2 | -46/+42 |
| | |||||
* | Assign IDs to assists | Aleksey Kladov | 2019-02-24 | 16 | -43/+102 |
| | |||||
* | Merge #885 | bors[bot] | 2019-02-24 | 9 | -47/+287 |
|\ | | | | | | | | | | | | | | | 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]> | ||||
| * | rename | Aleksey Kladov | 2019-02-24 | 1 | -8/+8 |
| | | |||||
| * | Add a test for macro parsing | Aleksey Kladov | 2019-02-23 | 2 | -10/+80 |
| | | |||||
| * | implement tt -> ast | Aleksey Kladov | 2019-02-23 | 2 | -5/+55 |
| | | |||||
| * | keep-text | Aleksey Kladov | 2019-02-23 | 1 | -10/+17 |
| | | |||||
| * | flatten tt | Aleksey Kladov | 2019-02-23 | 1 | -6/+55 |
| | | |||||
| * | token source scaffold | Aleksey Kladov | 2019-02-23 | 1 | -1/+22 |
| | | |||||
| * | add dependency on the parser | Aleksey Kladov | 2019-02-23 | 1 | -0/+1 |
| | | |||||
| * | add interface | Aleksey Kladov | 2019-02-23 | 1 | -0/+5 |
| | | |||||
| * | introduce tree builder | Aleksey Kladov | 2019-02-23 | 3 | -20/+61 |
| | | |||||
| * | rename | Aleksey Kladov | 2019-02-23 | 4 | -23/+19 |
| | | |||||
* | | Refactor associated method resolution a bit and make it work with generics | Florian Diebold | 2019-02-23 | 4 | -64/+98 |
| | | |||||
* | | Split ty.rs into several modules | Florian Diebold | 2019-02-23 | 5 | -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 | ||||
* | | Simplify test_fill_match_arm_refs test cases | Ville Penttinen | 2019-02-23 | 1 | -24/+0 |
| | | |||||
* | | Fix fill_match_arms not working with references | Ville Penttinen | 2019-02-23 | 1 | -0/+103 |
|/ | |||||
* | Merge #879 | bors[bot] | 2019-02-23 | 3 | -11/+139 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 879: Fixes to goto definition r=vipentti a=vipentti Previously goto definition would fail when the cursor was over the name of the definition. Now we should properly resolve to a `NavigationTarget` when on top of the name of a definition. In addition this adds `name_range` field to `FileSymbol`, this further fixes goto_definition and symbol based navigation by allowing the `NavigationTarget` to actually have a `focus_range`, meaning instead of focusing on the start of the `full_range`, we can have the cursor focus on the name. e.g. goto definition ```rust fn bar() { fn foo() { } foo<|>(); } ``` Previously this would put the cursor at the start of the FN_DEF: ```rust fn bar() { <|>fn foo() { } foo(); } ``` Now when using the symbol based resolving, we'll have a proper focus range and instead put the cursor at the start of the name. ```rust fn bar() { fn <|>foo() { } foo(); } ``` This fixes #877 but doesn't contain the refactoring of the return type for `goto_definition` Co-authored-by: Ville Penttinen <[email protected]> | ||||
| * | Remove unnecessary to_nav_target | Ville Penttinen | 2019-02-23 | 1 | -16/+12 |
| | | |||||
| * | Add name_range field to FileSymbol | Ville Penttinen | 2019-02-23 | 2 | -7/+17 |
| | | | | | | | | | | | | This contains the syntax range of the name itself, allowing NavigationTarget to properly set the focus_range. This should make it so that when using symbol based navigation, we should always focus on the name, instead of the full range. | ||||
| * | Fix NavigationTarget debug_render container_name output | Ville Penttinen | 2019-02-23 | 1 | -1/+1 |
| | | |||||
| * | Fix goto def not working when cursor was over the name of a def | Ville Penttinen | 2019-02-23 | 2 | -4/+126 |
| | | | | | | | | | | We now allow goto_definition to return the named NavigationTarget if the cursor is on the name of a definition. |