aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests
Commit message (Collapse)AuthorAgeFilesLines
* Coerce closures to fn pointersFlorian Diebold2019-12-202-5/+44
| | | | E.g. `let x: fn(A) -> B = |x| { y };`
* Fix coercion of last expression in function bodyFlorian Diebold2019-12-201-0/+16
|
* Handle closure return typesFlorian Diebold2019-12-202-0/+86
| | | | Fixes #2547.
* Add std::ops::Index support for inferingEdwin Cheng2019-12-191-0/+32
|
* Add test markFlorian Diebold2019-12-151-2/+6
|
* Handle impl Trait more correctlyFlorian Diebold2019-12-151-0/+31
| | | | | | | When calling a function, argument-position impl Trait is transparent; same for return-position impl Trait when inside the function. So in these cases, we need to represent that type not by `Ty::Opaque`, but by a type variable that can be unified with whatever flows into there.
* Add test for unifying impl TraitFlorian Diebold2019-12-151-1/+27
|
* Correctly infer - and ! using std::ops::{Neg,Not}Emil Lauridsen2019-12-131-0/+64
|
* Fix coercion from &Foo to an inference variable in a referenceFlorian Diebold2019-12-081-0/+37
| | | | We didn't try to unify within the reference, but we should.
* Add testsEdwin Cheng2019-12-061-0/+29
|
* Don't unify within a referenceFlorian Diebold2019-12-061-0/+36
| | | | | | | If we are expecting a `&Foo` and get a `&something`, when checking the `something`, we are *expecting* a `Foo`, but we shouldn't try to unify whatever we get with that expectation, because it could actually be a `&Foo`, and `&&Foo` coerces to `&Foo`. So this fixes quite a few false type mismatches.
* Implement derive(Copy, Clone) properly (well, kind of)Florian Diebold2019-12-051-0/+51
|
* Split up ty tests a bitFlorian Diebold2019-12-036-0/+4876
|
* Move TyAleksey Kladov2019-11-272-0/+615