Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge #2623 | bors[bot] | 2019-12-20 | 1 | -0/+19 |
|\ | | | | | | | | | | | | | | | | | | | 2623: Add support macros in impl blocks r=matklad a=edwin0cheng This PR add support for macros in impl blocks, which reuse `Expander` for macro expansion. see also: #2459 Co-authored-by: Edwin Cheng <[email protected]> | ||||
| * | Add support macros in impl blocks | Edwin Cheng | 2019-12-20 | 1 | -0/+19 |
| | | |||||
* | | Coerce closures to fn pointers | Florian Diebold | 2019-12-20 | 2 | -5/+44 |
| | | | | | | | | E.g. `let x: fn(A) -> B = |x| { y };` | ||||
* | | Fix coercion of last expression in function body | Florian Diebold | 2019-12-20 | 1 | -0/+16 |
| | | |||||
* | | Handle closure return types | Florian Diebold | 2019-12-20 | 2 | -0/+86 |
|/ | | | | Fixes #2547. | ||||
* | Add std::ops::Index support for infering | Edwin Cheng | 2019-12-19 | 1 | -0/+32 |
| | |||||
* | Add test mark | Florian Diebold | 2019-12-15 | 1 | -2/+6 |
| | |||||
* | Handle impl Trait more correctly | Florian Diebold | 2019-12-15 | 1 | -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 Trait | Florian Diebold | 2019-12-15 | 1 | -1/+27 |
| | |||||
* | Correctly infer - and ! using std::ops::{Neg,Not} | Emil Lauridsen | 2019-12-13 | 1 | -0/+64 |
| | |||||
* | Fix coercion from &Foo to an inference variable in a reference | Florian Diebold | 2019-12-08 | 1 | -0/+37 |
| | | | | We didn't try to unify within the reference, but we should. | ||||
* | Add tests | Edwin Cheng | 2019-12-06 | 1 | -0/+29 |
| | |||||
* | Don't unify within a reference | Florian Diebold | 2019-12-06 | 1 | -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 Diebold | 2019-12-05 | 1 | -0/+51 |
| | |||||
* | Split up ty tests a bit | Florian Diebold | 2019-12-03 | 6 | -0/+4876 |
| | |||||
* | Move Ty | Aleksey Kladov | 2019-11-27 | 2 | -0/+615 |