| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
We didn't try to unify within the reference, but we should.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|