rust/crates/ra_ide/src
Florian Diebold adc7b8ea2d Fix completion with a partially unknown type
To test whether the receiver type matches for the impl, we unify the given self
type (in this case `HashSet<{unknown}>`) with the self type of the
impl (`HashSet<?0>`), but if the given self type contains Unknowns, they won't
be unified with the variables in those places. So we got a receiver type that
was different from the expected one, and concluded the impl doesn't match.

The fix is slightly hacky; if after the unification, our variables are still
there, we make them fall back to Unknown. This does make some sense though,
since we don't want to 'leak' the variables.

Fixes #3547.
2020-03-10 21:02:13 +01:00
..
completion Fix completion with a partially unknown type 2020-03-10 21:02:13 +01:00
display Fix imports 2020-03-03 18:54:39 +01:00
references Cleanup API 2020-03-04 12:46:40 +01:00
snapshots Correctly flag 'lifetime definitions as definitions 2020-02-28 16:53:12 +01:00
syntax_highlighting Correctly flag 'lifetime definitions as definitions 2020-02-28 16:53:12 +01:00
assists.rs Simplify Assists interface 2020-02-09 16:03:54 +01:00
call_hierarchy.rs Refactor primary IDE API 2020-02-26 12:55:50 +01:00
call_info.rs Basic injections 2020-02-27 16:16:13 +01:00
completion.rs Introduce CompletionOptions 2020-03-10 18:40:22 +01:00
diagnostics.rs Support aliases and Self in struct literals 2020-03-06 15:43:14 +01:00
display.rs Show mod path in hover tooltip 2020-03-07 23:20:18 +02:00
expand_macro.rs Rename ast::ImplBlock -> ast::ImplDef 2020-02-29 21:33:15 +01:00
extend_selection.rs Use text_range::extend_to 2020-02-27 10:06:48 +08:00
folding_ranges.rs rename ra_ide_api -> ra_ide 2019-11-27 21:35:06 +03:00
goto_definition.rs Support cross-crate marks 2020-03-04 11:55:25 +01:00
goto_type_definition.rs Refactor primary IDE API 2020-02-26 12:55:50 +01:00
hover.rs Use Index for CrateGraph 2020-03-09 11:11:59 +01:00
impls.rs Rename ast::ImplBlock -> ast::ImplDef 2020-02-29 21:33:15 +01:00
inlay_hints.rs Omit unit struct hints 2020-03-08 23:21:08 +02:00
join_lines.rs When joining lines, unwrap trivial diverging blocks 2020-02-24 17:17:05 +01:00
lib.rs Move FeatureFlags 2020-03-10 18:56:15 +01:00
marks.rs Move reference classification to ra_ide_db 2020-03-03 18:50:15 +01:00
matching_brace.rs rename ra_ide_api -> ra_ide 2019-11-27 21:35:06 +03:00
mock_analysis.rs Consider crate declaration names 2020-03-08 23:00:50 +02:00
parent_module.rs Consider crate declaration names 2020-03-08 23:00:50 +02:00
prime_caches.rs Prime open files on load 2020-03-05 13:40:53 +01:00
references.rs Cleanup API 2020-03-04 12:46:40 +01:00
runnables.rs Refactor primary IDE API 2020-02-26 12:55:50 +01:00
source_change.rs rename ra_ide_api -> ra_ide 2019-11-27 21:35:06 +03:00
ssr.rs get matches from code.descendants 2020-02-25 23:53:29 +01:00
status.rs cleanup imports 2020-02-06 14:03:45 +01:00
syntax_highlighting.rs Fix imports 2020-03-03 18:54:39 +01:00
syntax_tree.rs cleanup imports 2020-02-06 14:03:45 +01:00
test_utils.rs rename ra_ide_api -> ra_ide 2019-11-27 21:35:06 +03:00
typing.rs Fix off by one in onEnter 2020-02-20 11:24:47 +02:00