aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/infer.rs
Commit message (Collapse)AuthorAgeFilesLines
* Small fixesKirill Bulatov2019-08-261-12/+9
|
* Make infer_block not unify; add back calculate_least_upper_boundFlorian Diebold2019-08-261-20/+54
|
* An attempt to add the coercion logic for NeverKirill Bulatov2019-08-261-51/+40
|
* Properly coerce never typesKirill Bulatov2019-08-261-44/+46
|
* Remove extra inference testKirill Bulatov2019-08-261-1/+0
|
* Fix never in if expressionsKirill Bulatov2019-08-261-3/+10
|
* Add test marksKirill Bulatov2019-08-261-0/+5
|
* Fix match type inference for Never match armsKirill Bulatov2019-08-261-5/+31
|
* Add type_mismatches to InferenceResult and use this in ok-wrapping code fixPhil Ellison2019-08-251-1/+18
|
* rename struct -> record, pos -> tupleAleksey Kladov2019-08-231-6/+6
|
* implement initial type inference for index expressionsAleksey Kladov2019-08-171-0/+6
|
* Introduce separate hir::BinaryOpAleksey Kladov2019-08-171-3/+1
| | | | | Unlike ast::BinOp, it has significantly more structure to it, so it's easier to, say, handle all assignment-like operations in the same way.
* Normalize assoc types in more placesFlorian Diebold2019-08-121-6/+21
|
* Normalize associated types during inferenceFlorian Diebold2019-08-121-1/+21
|
* provide completion in struct patternsEkaterina Babshukova2019-07-211-7/+15
|
* infer type for awaitUnreal Hoang2019-07-201-2/+40
| | | | by projecting inner_ty to Future::Output alias
* add await expr to astUnreal Hoang2019-07-201-0/+3
|
* Have InferenceContext contain an InferenceResult instead of duplicating all ↵Florian Diebold2019-07-141-36/+19
| | | | fields
* Some renamings for clarityFlorian Diebold2019-07-141-4/+4
|
* complete fields in enum variantsEkaterina Babshukova2019-07-121-0/+15
|
* Merge #1515bors[bot]2019-07-091-46/+23
|\ | | | | | | | | | | | | | | | | | | | | | | 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 codeFlorian Diebold2019-07-081-46/+18
| |
| * Use environment for associated type normalization as wellFlorian Diebold2019-07-081-1/+2
| |
| * Start handling environment in trait resolutionFlorian Diebold2019-07-081-5/+6
| | | | | | | | | | I.e. if we are inside a function with some where clauses, we assume these where clauses hold.
| * Refactor a bit & introduce Environment structFlorian Diebold2019-07-081-2/+5
| |
* | use namespaced consts for KnownNameUnreal Hoang2019-07-081-12/+10
| |
* | projection over std::ops::Try::Ok to infer try/?Unreal Hoang2019-07-081-2/+37
|/
* cargo formatMuhammad Mominul Huque2019-07-071-3/+3
|
* Constify KnownName'sMuhammad Mominul Huque2019-07-071-6/+7
|
* add projection to infer for loop variableUnreal Hoang2019-07-071-33/+91
|
* Make EnumVariant a GenericDef and simplify some codeFlorian Diebold2019-07-061-6/+1
|
* Add trait obligations for where clauses when calling functions/methodsFlorian Diebold2019-07-061-2/+13
| | | | | E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc.
* Clippy trivially_copy_pass_by_refJeremy Kolb2019-07-051-2/+2
|
* Merge #1491bors[bot]2019-07-051-1/+1
|\ | | | | | | | | | | | | | | | | | | 1491: More clippy r=matklad a=kjeremy A few more clippy changes. I'm a little unsure of the second commit. It's the trivially_copy_pass_by_ref lint and there are a number of places in the code we could use it if it makes sense. Co-authored-by: Jeremy Kolb <[email protected]>
| * Clippy changesJeremy Kolb2019-07-051-1/+1
| |
* | Fix clippy::redundant_cloneShotaro Yamada2019-07-051-2/+1
|/
* Some clippy fixes for 1.36Jeremy Kolb2019-07-041-8/+6
|
* allow rustfmt to reorder importsAleksey Kladov2019-07-041-20/+19
| | | | | | 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
* rename XSignature -> XDataAleksey Kladov2019-06-181-13/+12
|
* Implement * operation using Deref traitFlorian Diebold2019-06-151-3/+5
|
* Implement autoderef using the Deref traitFlorian Diebold2019-06-151-19/+21
| | | | - add support for other lang item targets, since we need the Deref lang item
* check for cancellation when executing queriesAleksey Kladov2019-06-121-1/+0
| | | | | | | Note that we can't just remove CheckCanceled trait altogether: sometimes it's useful to check for cancellation while the query is running! We do this, for example, in the name resolution fixed-point loop.
* remove inherent source implsAleksey Kladov2019-06-111-1/+1
|
* use Source for FunctionAleksey Kladov2019-06-111-1/+1
|
* somewhat better nameAleksey Kladov2019-06-081-17/+20
|
* [#1083] Try block syntax: fix testsAndrey Tkachenko2019-06-061-1/+0
|
* [#1083] Try block syntaxAndrey Tkachenko2019-06-061-0/+6
|
* Fix clippy::or_fun_callAlan Du2019-06-041-1/+1
|
* Fix clippy::identity_conversionAlan Du2019-06-041-3/+3
|
* Fix clippy::into_iter_on_refAlan Du2019-06-041-1/+1
|