| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
- add support for other lang item targets, since we need the Deref lang item
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
We use panics for cancellation, so we could trigger panic while
holding the solver. std::sync::Mutex will be poisoned as a result,
which and all further attempts to use solver (from other threads) will
panic as well.
This commit switches to parking_lot::Mutex which just unlocks on panic.
|
| |
|
|
|
|
| |
This makes sure we don't take too long in trait solving.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Reducing it to 2 was just a failed attempt to see whether that would help fix
some slow cases; in fact, it can create new slow cases by replacing concrete
types by variables.
|
| |
|
|
|
|
| |
This was duplicating impls in dependencies a lot...
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also remove the only remaining mention of chalk outside of the ty::traits
module.
|
| |
|
| |
|
|
|
|
|
| |
- add proper canonicalization logic
- add conversions from/to Chalk IR
|
|
|
|
|
| |
This prevents any `impl<T> Trait for T where ...` from being treated as a
blanket impl while we don't handle where clauses yet.
|
|
- make it possible to get parent trait from method
- add 'obligation' machinery for checking that a type implements a
trait (and inferring facts about type variables from that)
- handle type parameters of traits (to a certain degree)
- improve the hacky implements check to cover enough cases to exercise the
handling of traits with type parameters
- basic canonicalization (will probably also be done by Chalk)
|