Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rename `textual_macro` -> `legacy_macro` | uHOOCCOOHu | 2019-09-08 | 1 | -1/+1 |
| | | | | Add comments | ||||
* | Resolve textual scoped macros inside item | uHOOCCOOHu | 2019-09-08 | 1 | -0/+35 |
| | |||||
* | Fix crash for super trait cycles | Florian Diebold | 2019-09-07 | 1 | -0/+21 |
| | |||||
* | Fix Chalk environments | Florian Diebold | 2019-09-07 | 1 | -2/+2 |
| | | | | | The clauses need to be wrapped in `FromEnv` clauses for elaboration (i.e. things like inferring `T: Clone` from `T: Copy`) to work correctly. | ||||
* | Use traits from where clauses for method resolution | Florian Diebold | 2019-09-07 | 1 | -11/+10 |
| | | | | | E.g. if we have `T: some::Trait`, we can call methods from that trait without it needing to be in scope. | ||||
* | Lower `Fn(X, Y) -> Z` paths | Florian Diebold | 2019-09-07 | 1 | -8/+8 |
| | |||||
* | Lower bounds on trait definition, and resolve assoc types from super traits | Florian Diebold | 2019-09-07 | 1 | -5/+5 |
| | |||||
* | Add some more tests | Florian Diebold | 2019-09-07 | 1 | -0/+205 |
| | |||||
* | Properly format `impl Trait<Type = Foo>` types | Florian Diebold | 2019-09-03 | 1 | -4/+4 |
| | | | | | | It's a bit complicated because we basically have to 'undo' the desugaring, and the result is very dependent on the specifics of the desugaring and will probably produce weird results otherwise. | ||||
* | Add support for associated type bindings (`where Trait<Type = X>`) | Florian Diebold | 2019-09-03 | 1 | -18/+44 |
| | |||||
* | Add test for assoc type bindings | Florian Diebold | 2019-09-03 | 1 | -0/+65 |
| | |||||
* | Correctly build BodySourceMap for macro-expanded expressions | Aleksey Kladov | 2019-09-03 | 1 | -8/+25 |
| | |||||
* | fix hir for new block syntax | Aleksey Kladov | 2019-09-02 | 1 | -1/+1 |
| | |||||
* | :arrow_up: insta | Aleksey Kladov | 2019-08-29 | 1 | -1167/+1265 |
| | |||||
* | Remove redundant tests | Kirill Bulatov | 2019-08-26 | 1 | -63/+5 |
| | |||||
* | Make infer_block not unify; add back calculate_least_upper_bound | Florian Diebold | 2019-08-26 | 1 | -10/+12 |
| | |||||
* | An attempt to add the coercion logic for Never | Kirill Bulatov | 2019-08-26 | 1 | -0/+58 |
| | |||||
* | Properly coerce never types | Kirill Bulatov | 2019-08-26 | 1 | -7/+0 |
| | |||||
* | Remove extra inference test | Kirill Bulatov | 2019-08-26 | 1 | -24/+0 |
| | |||||
* | Fix never in if expressions | Kirill Bulatov | 2019-08-26 | 1 | -1/+41 |
| | |||||
* | Add test marks | Kirill Bulatov | 2019-08-26 | 1 | -1/+6 |
| | |||||
* | Fix match type inference for Never match arms | Kirill Bulatov | 2019-08-26 | 1 | -1/+1 |
| | |||||
* | Tests | Kirill Bulatov | 2019-08-26 | 1 | -0/+104 |
| | |||||
* | Improve/fix type bound lowering | Florian Diebold | 2019-08-22 | 1 | -0/+33 |
| | |||||
* | Handle impl/dyn Trait in method resolution | Florian Diebold | 2019-08-22 | 1 | -30/+52 |
| | | | | | | | | | | | | | When we have one of these, the `Trait` doesn't need to be in scope to call its methods. So we need to consider this when looking for method candidates. (Actually I think the same is true when we have a bound `T: some::Trait`, but we don't handle that yet). At the same time, since Chalk doesn't handle these types yet, add a small hack to skip Chalk in method resolution and just consider `impl Trait: Trait` always true. This is enough to e.g. get completions for `impl Trait`, but since we don't do any unification we won't infer the return type of e.g. `impl Into<i64>::into()`. | ||||
* | Add `impl Trait` and `dyn Trait` types | Florian Diebold | 2019-08-22 | 1 | -0/+120 |
| | | | | | | | - refactor bounds handling in the AST a bit - add HIR for bounds - add `Ty::Dyn` and `Ty::Opaque` variants and lower `dyn Trait` / `impl Trait` syntax to them | ||||
* | Don't add `?` bounds as real bounds | Aleksey Kladov | 2019-08-22 | 1 | -0/+29 |
| | | | | closes #1709 | ||||
* | implement initial type inference for index expressions | Aleksey Kladov | 2019-08-17 | 1 | -0/+14 |
| | |||||
* | Handle placeholder assoc types when Chalk produces them | Florian Diebold | 2019-08-12 | 1 | -0/+49 |
| | |||||
* | Normalize assoc types in more places | Florian Diebold | 2019-08-12 | 1 | -6/+6 |
| | |||||
* | Lower fully qualified associated type paths | Florian Diebold | 2019-08-12 | 1 | -7/+7 |
| | | | | I.e. `<T as Trait>::Foo`. | ||||
* | Add another test for assoc type resolution | Florian Diebold | 2019-08-12 | 1 | -6/+46 |
| | |||||
* | implement while let desugaring | Aleksey Kladov | 2019-08-07 | 1 | -0/+20 |
| | |||||
* | Move assist test, add literal type inference test | Phil Ellison | 2019-07-29 | 1 | -11/+15 |
| | |||||
* | streamline API | Aleksey Kladov | 2019-07-21 | 1 | -4/+2 |
| | |||||
* | Merge #1562 | bors[bot] | 2019-07-20 | 1 | -0/+35 |
|\ | | | | | | | | | | | | | | | | | 1562: Continue support for .await r=matklad a=unrealhoang - add await expr to ast and HIR Expr - infer type for `.await` Co-authored-by: Unreal Hoang <[email protected]> | ||||
| * | infer type for await | Unreal Hoang | 2019-07-20 | 1 | -0/+35 |
| | | | | | | | | by projecting inner_ty to Future::Output alias | ||||
* | | rename range -> text_range | Aleksey Kladov | 2019-07-20 | 1 | -1/+1 |
|/ | |||||
* | migrate ra_hir to the new rowan | Aleksey Kladov | 2019-07-19 | 1 | -5/+5 |
| | |||||
* | Merge #1515 | bors[bot] | 2019-07-09 | 1 | -0/+79 |
|\ | | | | | | | | | | | | | | | | | | | | | | | 1515: Trait environment r=matklad a=flodiebold This adds the environment, i.e. the set of `where` clauses in scope, when solving trait goals. That means that e.g. in ```rust fn foo<T: SomeTrait>(t: T) {} ``` , we are able to complete methods of `SomeTrait` on the `t`. This affects the trait APIs quite a bit (since every method that needs to be able to solve for some trait needs to get this environment somehow), so I thought I'd do it rather sooner than later ;) Co-authored-by: Florian Diebold <[email protected]> | ||||
| * | Use environment for associated type normalization as well | Florian Diebold | 2019-07-08 | 1 | -0/+19 |
| | | |||||
| * | Start handling environment in trait resolution | Florian Diebold | 2019-07-08 | 1 | -0/+60 |
| | | | | | | | | | | I.e. if we are inside a function with some where clauses, we assume these where clauses hold. | ||||
* | | beautify tests | Unreal Hoang | 2019-07-09 | 1 | -20/+36 |
| | | |||||
* | | projection over std::ops::Try::Ok to infer try/? | Unreal Hoang | 2019-07-08 | 1 | -0/+37 |
|/ | |||||
* | add projection to infer for loop variable | Unreal Hoang | 2019-07-07 | 1 | -0/+36 |
| | |||||
* | Add trait obligations for where clauses when calling functions/methods | Florian Diebold | 2019-07-06 | 1 | -21/+113 |
| | | | | | E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc. | ||||
* | allow rustfmt to reorder imports | Aleksey Kladov | 2019-07-04 | 1 | -7/+8 |
| | | | | | | This wasn't a right decision in the first place, the feature flag was broken in the last rustfmt release, and syntax highlighting of imports is more important anyway | ||||
* | Add test for autoderef infinite recursion | Florian Diebold | 2019-06-16 | 1 | -0/+25 |
| | |||||
* | Simplifications / cleanup from review | Florian Diebold | 2019-06-16 | 1 | -1/+0 |
| | |||||
* | Somewhat handle variables in the derefed type, and add another test | Florian Diebold | 2019-06-15 | 1 | -0/+31 |
| |