diff --git a/src/racer/matchers.rs b/src/racer/matchers.rs index bfd522a0..12a287f6 100644 --- a/src/racer/matchers.rs +++ b/src/racer/matchers.rs @@ -7,7 +7,7 @@ use core::MatchType::{self, Let, Module, Function, Struct, Type, Trait, Enum, En Const, Static, IfLet, WhileLet, For, Macro}; use core::Namespace; use std::path::Path; -use std::{iter, option, str, vec}; +use std::{str, vec}; /// The location of an import (`use` item) currently being resolved. #[derive(PartialEq, Eq)] @@ -20,15 +20,11 @@ pub struct PendingImport<'fp> { /// A stack of imports (`use` items) currently being resolved. pub type PendingImports<'stack, 'fp> = StackLinkedListNode<'stack, PendingImport<'fp>>; -pub type MIter = option::IntoIter; -pub type MChain = iter::Chain; - -// TODO change return type to `impl Iterator` pub fn match_types(src: Src, blobstart: Point, blobend: Point, searchstr: &str, filepath: &Path, search_type: SearchType, local: bool, session: &Session, - pending_imports: &PendingImports) -> iter::Chain>>>>, vec::IntoIter> { + pending_imports: &PendingImports) -> impl Iterator { let it = match_extern_crate(&src, blobstart, blobend, searchstr, filepath, search_type, session).into_iter(); let it = it.chain(match_mod(src, blobstart, blobend, searchstr, filepath, search_type, local, session).into_iter()); let it = it.chain(match_struct(&src, blobstart, blobend, searchstr, filepath, search_type, local).into_iter()); @@ -40,7 +36,7 @@ pub fn match_types(src: Src, blobstart: Point, blobend: Point, pub fn match_values(src: Src, blobstart: Point, blobend: Point, searchstr: &str, filepath: &Path, search_type: SearchType, - local: bool) -> MChain>> { + local: bool) -> impl Iterator { let it = match_const(&src, blobstart, blobend, searchstr, filepath, search_type, local).into_iter(); let it = it.chain(match_static(&src, blobstart, blobend, searchstr, filepath, search_type, local).into_iter()); let it = it.chain(match_fn(&src, blobstart, blobend, searchstr, filepath, search_type, local).into_iter());