aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/infer/unify.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix type equality for dyn TraitFlorian Diebold2020-04-171-3/+39
| | | | | | | Fixes a lot of false type mismatches. (And as always when touching the unification code, I have to say I'm looking forward to replacing it by Chalk's...)
* Switch Chalk to recursive solverFlorian Diebold2020-04-161-0/+1
| | | | + various fixes related to that.
* Upgrade Chalk againFlorian Diebold2020-04-051-11/+17
| | | | | | | The big change here is counting binders, not variables (https://github.com/rust-lang/chalk/pull/360). We have to adapt to the same scheme for our `Ty::Bound`. It's mostly fine though, even makes some things more clear.
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-161-11/+7
| | | | | | | It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate).
* Fix #3373Florian Diebold2020-03-011-3/+12
| | | | | | | Basically, we need to allow variables in the caller self type to unify with the impl's declared self type. That requires some more contortions in the variable handling. I'm looking forward to (hopefully) handling this in a cleaner way when we switch to Chalk's types and unification code.
* Fix handling of binders in canonicalizationFlorian Diebold2020-02-221-64/+35
| | | | I'm looking forward to getting rid of this in favor of Chalk's implementation.
* Normalize associated types in types coming from ChalkFlorian Diebold2020-02-211-1/+4
| | | | Fixes #3232.
* More manual clippy fixesKirill Bulatov2020-02-181-3/+2
|
* Fix coercion of &T to itselfFlorian Diebold2020-02-161-0/+2
| | | | | The autoderef coercion logic did not handle matching placeholders. This led to some type mismatches.
* Fix #2467Florian Diebold2019-12-031-2/+2
| | | | | The stand-alone `unify` requires that the type doesn't contain any type variables. So we can't share the code here for now (without more refactoring)...
* Check receiver type properlyFlorian Diebold2019-12-021-8/+12
|
* Extract unification code to unify moduleFlorian Diebold2019-12-021-6/+266
|
* Move TyAleksey Kladov2019-11-271-0/+162