aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/traits/chalk.rs
Commit message (Collapse)AuthorAgeFilesLines
* Blacklist some traits from being considered in where clausesFlorian Diebold2019-05-121-1/+28
| | | | | | | For Send/Sync/Sized, we don't handle auto traits correctly yet and because they have a lot of impls, they can easily lead to slowdowns. In the case of Fn/FnMut/FnOnce, we don't parse the special Fn notation correctly yet and don't handle closures yet, so we are very unlikely to find an impl.
* Handle auto traits & negative implsFlorian Diebold2019-05-111-5/+19
| | | | | We don't pass field types to Chalk yet though, so the auto trait inference won't be correct.
* Reduce Chalk max_size parameter, add test for slow caseFlorian Diebold2019-05-111-2/+5
|
* Handle Chalk conversion for FnDefFlorian Diebold2019-05-111-2/+25
|
* Handle resolution errors in where clausesFlorian Diebold2019-05-111-15/+41
| | | | | This is slightly hacky, but maybe more elegant than alternative solutions: We just use a hardcoded Chalk trait ID which we special-case to have no impls.
* Handle where clauses in trait solvingFlorian Diebold2019-05-111-13/+55
|
* Differentiate Tuple / FnPtr type constructors by cardinalityFlorian Diebold2019-05-041-1/+3
| | | | | This is necessary because Chalk (reasonably) expects each 'struct' to know how many type parameters it takes.
* Handle recursive types in canonicalizationFlorian Diebold2019-05-041-1/+1
|
* Remove ToChalk implementation for ApplicationTyFlorian Diebold2019-05-041-29/+16
|
* Update ChalkFlorian Diebold2019-05-041-4/+13
|
* Turn eprintln!s into debug!sFlorian Diebold2019-05-041-6/+9
|
* Handle Ty::Unknown in Chalk conversionFlorian Diebold2019-05-041-1/+5
| | | | Badly, but at least it doesn't crash.
* Canonicalize before doing method resolutionFlorian Diebold2019-05-041-6/+7
|
* Move Chalk conversion code to its own moduleFlorian Diebold2019-05-041-0/+327