remove resolver from CompletonContext

This commit is contained in:
Aleksey Kladov 2019-04-11 16:49:35 +03:00
parent 3c9f2d0e37
commit ebb0c377f0
5 changed files with 9 additions and 31 deletions

View file

@ -9,7 +9,7 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) {
Some(path) => path.clone(),
_ => return,
};
let def = match ctx.resolver.resolve_path(ctx.db, &path).take_types() {
let def = match ctx.analyzer.resolver().resolve_path(ctx.db, &path).take_types() {
Some(Resolution::Def(def)) => def,
_ => return,
};

View file

@ -7,7 +7,7 @@ pub(super) fn complete_pattern(acc: &mut Completions, ctx: &CompletionContext) {
}
// FIXME: ideally, we should look at the type we are matching against and
// suggest variants + auto-imports
let names = ctx.resolver.all_names(ctx.db);
let names = ctx.analyzer.resolver().all_names(ctx.db);
for (name, res) in names.into_iter() {
let r = res.as_ref();
let def = match r.take_types().or(r.take_values()) {

View file

@ -4,7 +4,7 @@ pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) {
if !ctx.is_trivial_path {
return;
}
let names = ctx.resolver.all_names(ctx.db);
let names = ctx.analyzer.resolver().all_names(ctx.db);
names.into_iter().for_each(|(name, res)| acc.add_resolution(ctx, name.to_string(), &res));
}

View file

@ -5,7 +5,7 @@ use ra_syntax::{
algo::{find_token_at_offset, find_covering_element, find_node_at_offset},
SyntaxKind::*,
};
use hir::{source_binder, Resolver};
use hir::source_binder;
use crate::{db, FilePosition};
@ -17,7 +17,6 @@ pub(crate) struct CompletionContext<'a> {
pub(super) analyzer: hir::SourceAnalyzer,
pub(super) offset: TextUnit,
pub(super) token: SyntaxToken<'a>,
pub(super) resolver: Resolver,
pub(super) module: Option<hir::Module>,
pub(super) function_syntax: Option<&'a ast::FnDef>,
pub(super) use_item_syntax: Option<&'a ast::UseItem>,
@ -47,7 +46,6 @@ impl<'a> CompletionContext<'a> {
original_file: &'a SourceFile,
position: FilePosition,
) -> Option<CompletionContext<'a>> {
let resolver = source_binder::resolver_for_position(db, position);
let module = source_binder::module_from_position(db, position);
let token = find_token_at_offset(original_file.syntax(), position.offset).left_biased()?;
let analyzer = hir::SourceAnalyzer::new(db, position.file_id, token.parent());
@ -56,7 +54,6 @@ impl<'a> CompletionContext<'a> {
analyzer,
token,
offset: position.offset,
resolver,
module,
function_syntax: None,
use_item_syntax: None,