Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Add test for invalidation of inferred types when typing inside function | Florian Diebold | 2019-01-05 | 2 | -0/+58 | |
|/ | | | | This currently fails, but should work once we have hir::Expr. | |||||
* | Merge #370 | bors[bot] | 2019-01-04 | 13 | -48/+396 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | 370: Self params & type r=matklad a=flodiebold This implements type inference for `self`, so field completion for methods taking `self` works now. - rename `IMPL_ITEM` to `IMPL_BLOCK` -- rustc calls the methods etc. inside an impl `ImplItem`s, and the impl itself doesn't define an item, so I thought this name was clearer. - add HIR for impl blocks -- we collect all impls in a crate at once, so we can go from methods to containing impls, and since we will later also need to find all impls for a certain type (which may be anywhere in the crate, I think?). We could be more lazy here, but I don't know if it's worth the complexity. - resolve `self` and `Self` during type inference - refactor a bit in ty.rs as well Co-authored-by: Florian Diebold <[email protected]> | |||||
| * | 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 | |
| | | ||||||
* | | :arrow_up: salsa | Aleksey Kladov | 2019-01-04 | 1 | -1/+1 | |
|/ | ||||||
* | 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 | 6 | -86/+24 | |
| | ||||||
* | 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 | 7 | -118/+385 | |
| | | | | | | | | | 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 | |
| | ||||||
* | :arrow_up: salsa | Aleksey Kladov | 2018-12-28 | 1 | -1/+1 | |
| | ||||||
* | 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 | |
| |