rust-analyzer/crates
bors[bot] 9c49f6c36e Merge #1216
1216: Basic Chalk integration r=matklad a=flodiebold

This replaces the ad-hoc `implements` check by Chalk. It doesn't yet any new functionality (e.g. where clauses aren't passed to Chalk yet). The tests that exist actually work, but it needs some refactoring, currently crashes when running analysis on the RA repo, and depends on rust-lang/chalk#216 which isn't merged yet 😄 

The main work here is converting stuff back and forth and providing Chalk with the information it needs, and the canonicalization logic. Since canonicalization depends a lot on the inference table, I don't think we can currently reuse the logic from Chalk, so we need to implement it ourselves; it's not actually that complicated anyway ;) I realized that we need a `Ty::Bound` variant separate from `Ty::Param` -- these are two different things, and I think type parameters inside a function actually need to be represented in Chalk as `Placeholder` types.

~~Currently this crashes in the 'real' world because we don't yet do canonicalization when filtering method candidates. Proper canonicalization needs the inference table (to collapse different inference variables that have already been unified), but we need to be able to call the method candidate selection from the completion code... So I'm currently thinking how to best handle that 😄~~

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
2019-05-04 18:07:09 +00:00
..
gen_lsp_server switch to official extend selection API 2019-04-21 12:13:48 +03:00
ra_arena Add is_empty to Arena 2019-04-26 11:42:10 -04:00
ra_assists add complex match case and documentation 2019-05-02 01:41:02 +09:00
ra_batch migrate to salsas interning 2019-04-09 22:51:22 +03:00
ra_cli Merge #1068 2019-04-03 09:09:11 +00:00
ra_db drop old interning infra 2019-04-09 22:52:06 +03:00
ra_fmt replace usages of algo::generate with iter::successors from std 2019-04-13 16:43:49 +02:00
ra_hir Differentiate Tuple / FnPtr type constructors by cardinality 2019-05-04 19:11:21 +02:00
ra_ide_api Differentiate Tuple / FnPtr type constructors by cardinality 2019-05-04 19:11:21 +02:00
ra_lsp_server Basic resolution for ADT 2019-04-23 14:32:47 -04:00
ra_mbe Fix $true and $false as $var name error 2019-05-05 00:49:50 +08:00
ra_parser Skip Dollars when bump raw token 2019-05-01 22:39:47 +08:00
ra_prof Simplify 2019-04-26 11:42:56 -04:00
ra_project_model Sends cwd info for runnables and code lenses 2019-04-14 10:04:38 +02:00
ra_syntax Revert "eagarly clean astd maps" 2019-05-04 16:04:34 +03:00
ra_text_edit Disable fork feature for proptest 2019-03-23 08:57:07 +01:00
ra_tt Use map, sum in Subtree::coount instead of fold 2019-04-22 17:37:27 +08:00
test_utils fix error on wrong path 2019-03-17 12:53:22 +03:00
thread_worker automatically wait for worker threads 2019-02-14 21:11:07 +03:00
tools Use EXE extension for pre-commit hook on Window 2019-03-27 07:52:59 +01:00