Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Implement type inference for boolean operators | Marcus Klaas de Vries | 2019-01-05 | 3 | -2/+38 |
| | |||||
* | Rename ImplsInCrateQuery as well | Florian Diebold | 2019-01-04 | 2 | -2/+2 |
| | |||||
* | Do impl collection per module, not per crate | Florian Diebold | 2019-01-04 | 3 | -33/+32 |
| | |||||
* | Rename ImplBlock::target -> target_type, and add target_trait already | Florian Diebold | 2019-01-04 | 2 | -7/+17 |
| | |||||
* | Refactor a bit | Florian Diebold | 2019-01-04 | 1 | -58/+62 |
| | |||||
* | Resolve the Self type | Florian Diebold | 2019-01-04 | 3 | -24/+71 |
| | |||||
* | Resolve the self parameter during type inference | Florian Diebold | 2019-01-04 | 3 | -4/+19 |
| | |||||
* | Type the self parameter | Florian Diebold | 2019-01-04 | 3 | -7/+37 |
| | |||||
* | Add HIR for impl blocks | Florian Diebold | 2019-01-04 | 8 | -5/+225 |
| | | | | | | | | | Since we need to be able to go from def to containing impl block, as well as the other direction, and to find all impls for a certain type, a design similar to the one for modules, where we collect all impls for the whole crate and keep them in an arena, seemed fitting. The ImplBlock type, which provides the public interface, then consists only of an Arc to the arena containing all impls, and the index into it. | ||||
* | Add test for self type inference | Florian Diebold | 2019-01-04 | 2 | -0/+23 |
| | |||||
* | Rename ImplItem to ImplBlock | Florian Diebold | 2019-01-04 | 1 | -1/+1 |
| | | | | | rustc uses the name ImplItem for items in impls, not the impl {} block itself, which could lead to confusion. | ||||
* | remove id arena | Aleksey Kladov | 2019-01-04 | 5 | -85/+23 |
| | |||||
* | index stuff produced by macros | Aleksey Kladov | 2019-01-03 | 3 | -5/+49 |
| | |||||
* | hardcode vec macro | Aleksey Kladov | 2019-01-03 | 1 | -0/+18 |
| | |||||
* | simplify runnables | Aleksey Kladov | 2019-01-02 | 1 | -1/+1 |
| | |||||
* | small rename | Aleksey Kladov | 2019-01-02 | 2 | -3/+3 |
| | |||||
* | comments | Aleksey Kladov | 2019-01-02 | 3 | -12/+35 |
| | |||||
* | rename | Aleksey Kladov | 2019-01-02 | 2 | -2/+2 |
| | |||||
* | move macro id to ids | Aleksey Kladov | 2019-01-01 | 5 | -40/+40 |
| | |||||
* | move more stuff to ids | Aleksey Kladov | 2019-01-01 | 6 | -185/+183 |
| | |||||
* | rename MFileId -> HirFileId | Aleksey Kladov | 2019-01-01 | 10 | -95/+131 |
| | |||||
* | introduce ids module | Aleksey Kladov | 2019-01-01 | 2 | -14/+34 |
| | |||||
* | add tests for macro generated items | Aleksey Kladov | 2019-01-01 | 1 | -1/+83 |
| | |||||
* | add items from macros to modules | Aleksey Kladov | 2019-01-01 | 1 | -12/+36 |
| | |||||
* | wip | Aleksey Kladov | 2019-01-01 | 2 | -47/+49 |
| | |||||
* | fix tests | Aleksey Kladov | 2019-01-01 | 3 | -2/+3 |
| | |||||
* | use MFile | Aleksey Kladov | 2019-01-01 | 7 | -30/+62 |
| | |||||
* | introduce MFileId | Aleksey Kladov | 2019-01-01 | 1 | -0/+7 |
| | |||||
* | work towards brining macros to nameres | Aleksey Kladov | 2019-01-01 | 2 | -3/+16 |
| | |||||
* | save top-level macros in module items | Aleksey Kladov | 2019-01-01 | 2 | -13/+17 |
| | |||||
* | hard-code expansion of query_group | Aleksey Kladov | 2019-01-01 | 1 | -7/+37 |
| | |||||
* | fix tests | Aleksey Kladov | 2019-01-01 | 2 | -2/+9 |
| | |||||
* | rename | Aleksey Kladov | 2019-01-01 | 3 | -15/+15 |
| | |||||
* | move more macros to hir | Aleksey Kladov | 2019-01-01 | 3 | -42/+113 |
| | |||||
* | use macros database in analysis | Aleksey Kladov | 2019-01-01 | 2 | -6/+48 |
| | |||||
* | introduce MacrosDatabase | Aleksey Kladov | 2019-01-01 | 2 | -0/+58 |
| | |||||
* | Make modules with tests runnable | Jan Jansen | 2018-12-31 | 1 | -0/+5 |
| | | | | Fixes #154 | ||||
* | Add more docs in ty.rs | Florian Diebold | 2018-12-29 | 3 | -36/+61 |
| | | | | | Also get rid of the indirection through query_definitions for the type-related queries. | ||||
* | Missing return type means unit, not unknown | Florian Diebold | 2018-12-29 | 2 | -3/+7 |
| | |||||
* | Implement type variables | Florian Diebold | 2018-12-29 | 6 | -118/+384 |
| | | | | | | | | | This will really become necessary when we implement generics, but even now, it allows us to reason 'backwards' to infer types of expressions that we didn't understand for some reason. We use ena, the union-find implementation extracted from rustc, to keep track of type variables. | ||||
* | nameify structs&enums | Aleksey Kladov | 2018-12-28 | 5 | -57/+43 |
| | |||||
* | completion for enum variants | Aleksey Kladov | 2018-12-28 | 1 | -0/+4 |
| | |||||
* | simplify | Aleksey Kladov | 2018-12-28 | 1 | -9/+4 |
| | |||||
* | remove FnId | Aleksey Kladov | 2018-12-27 | 4 | -36/+21 |
| | |||||
* | use names everywhere | Aleksey Kladov | 2018-12-27 | 2 | -12/+35 |
| | |||||
* | dont leak Name details in testing | Aleksey Kladov | 2018-12-27 | 2 | -19/+62 |
| | |||||
* | introduce known names | Aleksey Kladov | 2018-12-27 | 4 | -29/+71 |
| | |||||
* | introduce hir::Name | Aleksey Kladov | 2018-12-27 | 10 | -50/+120 |
| | |||||
* | add function to completion ctx | Aleksey Kladov | 2018-12-27 | 1 | -0/+1 |
| | |||||
* | Resolve field types lazily | Florian Diebold | 2018-12-25 | 6 | -59/+75 |
| | | | | I.e. not already when getting the HIR for the struct. |