Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add SubstsBuilder | Florian Diebold | 2019-09-26 | 1 | -13/+5 |
| | | | | + further refactoring. | ||||
* | Merge #1906 | bors[bot] | 2019-09-25 | 1 | -2/+5 |
|\ | | | | | | | | | | | | | | | 1906: Add missing lang-items to `def_crates` r=matklad a=sinkuu Co-authored-by: Shotaro Yamada <[email protected]> | ||||
| * | Add missing lang-items to `def_crates` | Shotaro Yamada | 2019-09-25 | 1 | -2/+5 |
| | | |||||
* | | Remove redundant clone() | Shotaro Yamada | 2019-09-25 | 1 | -1/+1 |
|/ | |||||
* | Remove TraitItem and ImplItem in favor of AssocItem | Florian Diebold | 2019-09-17 | 1 | -6/+5 |
| | |||||
* | cleanup hir db imports | Aleksey Kladov | 2019-09-08 | 1 | -1/+2 |
| | |||||
* | Use traits from where clauses for method resolution | Florian Diebold | 2019-09-07 | 1 | -1/+7 |
| | | | | | E.g. if we have `T: some::Trait`, we can call methods from that trait without it needing to be in scope. | ||||
* | Handle impl/dyn Trait in method resolution | Florian Diebold | 2019-08-22 | 1 | -2/+14 |
| | | | | | | | | | | | | | 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()`. | ||||
* | show inherent and trait impls of structs and enums | Ekaterina Babshukova | 2019-08-16 | 1 | -0/+9 |
| | |||||
* | do fixup: remove unused import | Evgenii P | 2019-08-02 | 1 | -1/+1 |
| | |||||
* | Relax trait solving more for completion | Evgenii P | 2019-08-02 | 1 | -7/+1 |
| | |||||
* | rustfmt | Evgenii P | 2019-08-02 | 1 | -3/+9 |
| | |||||
* | Implement completion for the .await syntax | Evgenii P | 2019-08-02 | 1 | -1/+15 |
| | |||||
* | Some renamings for clarity | Florian Diebold | 2019-07-14 | 1 | -3/+3 |
| | |||||
* | Merge #1515 | bors[bot] | 2019-07-09 | 1 | -9/+12 |
|\ | | | | | | | | | | | | | | | | | | | | | | | 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]> | ||||
| * | Unify `normalize` and `implements` to simplify code | Florian Diebold | 2019-07-08 | 1 | -8/+8 |
| | | |||||
| * | Start handling environment in trait resolution | Florian Diebold | 2019-07-08 | 1 | -3/+4 |
| | | | | | | | | | | I.e. if we are inside a function with some where clauses, we assume these where clauses hold. | ||||
| * | Refactor a bit & introduce Environment struct | Florian Diebold | 2019-07-08 | 1 | -4/+6 |
| | | |||||
* | | Look for the fXX_runtime lang items during method resolution. | Marco Groppo | 2019-07-08 | 1 | -4/+6 |
|/ | |||||
* | Moved module resolution test in mods.rs | Alexander Andreev | 2019-07-07 | 1 | -1/+1 |
| | |||||
* | Clippy trivially_copy_pass_by_ref | Jeremy Kolb | 2019-07-05 | 1 | -5/+5 |
| | |||||
* | allow rustfmt to reorder imports | Aleksey Kladov | 2019-07-04 | 1 | -6/+6 |
| | | | | | | 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 comment | Shotaro Yamada | 2019-06-25 | 1 | -6/+8 |
| | |||||
* | Method resolution for slices | Shotaro Yamada | 2019-06-24 | 1 | -25/+36 |
| | |||||
* | rename XSignature -> XData | Aleksey Kladov | 2019-06-18 | 1 | -4/+4 |
| | |||||
* | Implement autoderef using the Deref trait | Florian Diebold | 2019-06-15 | 1 | -3/+2 |
| | | | | - add support for other lang item targets, since we need the Deref lang item | ||||
* | Fix clippy::single_match | Alan Du | 2019-06-04 | 1 | -22/+16 |
| | |||||
* | Use traits from prelude for method resolution | Florian Diebold | 2019-05-12 | 1 | -1/+1 |
| | |||||
* | Fix impl blocks with unresolved target trait being treated as inherent impls | Florian Diebold | 2019-05-12 | 1 | -5/+7 |
| | |||||
* | Turn `implements` into a query again | Florian Diebold | 2019-05-07 | 1 | -2/+1 |
| | |||||
* | Update Chalk | Florian Diebold | 2019-05-04 | 1 | -1/+0 |
| | |||||
* | Canonicalize before doing method resolution | Florian Diebold | 2019-05-04 | 1 | -110/+109 |
| | |||||
* | Chalk integration | Florian Diebold | 2019-05-04 | 1 | -9/+20 |
| | | | | | - add proper canonicalization logic - add conversions from/to Chalk IR | ||||
* | lang_item_lookup is now a salsa query. | Marco Groppo | 2019-04-19 | 1 | -6/+5 |
| | |||||
* | New krate() method in Resolver. | Marco Groppo | 2019-04-19 | 1 | -21/+7 |
| | | | | Renamed Impl to ImplBlock. | ||||
* | Initial support for lang items. | Marco Groppo | 2019-04-19 | 1 | -4/+34 |
| | |||||
* | Refactor method candidate generation a bit | Florian Diebold | 2019-04-14 | 1 | -53/+73 |
| | | | | | | This fixes the order in which candidates are chosen a bit (not completely though, as the ignored test demonstrates), and makes autoderef work with trait methods. As a side effect, this also makes completion of trait methods work :) | ||||
* | Extract generic_params method to a HasGenericParams trait | Florian Diebold | 2019-04-14 | 1 | -3/+5 |
| | |||||
* | Some cleanup | Florian Diebold | 2019-04-14 | 1 | -6/+7 |
| | |||||
* | More trait infrastructure | Florian Diebold | 2019-04-14 | 1 | -28/+19 |
| | | | | | | | | | | - make it possible to get parent trait from method - add 'obligation' machinery for checking that a type implements a trait (and inferring facts about type variables from that) - handle type parameters of traits (to a certain degree) - improve the hacky implements check to cover enough cases to exercise the handling of traits with type parameters - basic canonicalization (will probably also be done by Chalk) | ||||
* | Get substs for trait refs in impl blocks | Florian Diebold | 2019-04-14 | 1 | -2/+4 |
| | |||||
* | make resolver private | Aleksey Kladov | 2019-04-13 | 1 | -1/+1 |
| | |||||
* | Clean up comments / use nicer Iterator methods | Florian Diebold | 2019-03-25 | 1 | -9/+14 |
| | |||||
* | Implement a very naive implements check | Florian Diebold | 2019-03-25 | 1 | -6/+26 |
| | | | | ... to make the infer_trait_method_simple test have the correct result. | ||||
* | Basics for trait method resolution | Florian Diebold | 2019-03-25 | 1 | -14/+46 |
| | |||||
* | replace todo with fixme | Aleksey Kladov | 2019-03-23 | 1 | -1/+1 |
| | |||||
* | Rename name field to ctor as well | Florian Diebold | 2019-03-21 | 1 | -2/+2 |
| | |||||
* | TypeName => TypeCtor | Florian Diebold | 2019-03-21 | 1 | -3/+3 |
| | |||||
* | Remove the old variants replaced by Ty::Apply | Florian Diebold | 2019-03-21 | 1 | -4/+7 |
| | |||||
* | rename ModuleId -> CrateModuleId | Aleksey Kladov | 2019-03-17 | 1 | -4/+4 |
| |