From 2d7f5891f7c7d19342ccddb53436527d1ca7e2b4 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Thu, 11 Nov 2021 18:47:24 +0100 Subject: [PATCH] Remove faulty logic for ascending test attributes for runnables --- crates/hir_expand/src/lib.rs | 17 ----------------- crates/ide/src/runnables.rs | 9 ++------- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/crates/hir_expand/src/lib.rs b/crates/hir_expand/src/lib.rs index a0a79b2b4c..0c4fdfa0fe 100644 --- a/crates/hir_expand/src/lib.rs +++ b/crates/hir_expand/src/lib.rs @@ -699,23 +699,6 @@ impl InFile { pub fn syntax(&self) -> InFile<&SyntaxNode> { self.with_value(self.value.syntax()) } - - pub fn nodes_with_attributes<'db>( - self, - db: &'db dyn db::AstDatabase, - ) -> impl Iterator> + 'db - where - N: 'db, - { - iter::successors(Some(self), move |node| { - let InFile { file_id, value } = node.file_id.call_node(db)?; - N::cast(value).map(|n| InFile::new(file_id, n)) - }) - } - - pub fn node_with_attributes(self, db: &dyn db::AstDatabase) -> InFile { - self.nodes_with_attributes(db).last().unwrap() - } } /// In Rust, macros expand token trees to token trees. When we want to turn a diff --git a/crates/ide/src/runnables.rs b/crates/ide/src/runnables.rs index 0934491763..40c6b21159 100644 --- a/crates/ide/src/runnables.rs +++ b/crates/ide/src/runnables.rs @@ -236,9 +236,7 @@ fn find_related_tests( .filter_map(|token| token.ancestors().find_map(ast::Fn::cast)) .map(|f| hir::InFile::new(sema.hir_file_for(f.syntax()), f)); - for fn_def in functions { - // #[test/bench] expands to just the item causing us to lose the attribute, so recover them by going out of the attribute - let InFile { value: fn_def, .. } = &fn_def.node_with_attributes(sema.db); + for InFile { value: ref fn_def, .. } in functions { if let Some(runnable) = as_test_runnable(sema, fn_def) { // direct test tests.insert(runnable); @@ -294,8 +292,7 @@ fn parent_test_module(sema: &Semantics, fn_def: &ast::Fn) -> Optio } pub(crate) fn runnable_fn(sema: &Semantics, def: hir::Function) -> Option { - // #[test/bench] expands to just the item causing us to lose the attribute, so recover them by going out of the attribute - let func = def.source(sema.db)?.node_with_attributes(sema.db); + let func = def.source(sema.db)?; let name_string = def.name(sema.db).to_string(); let root = def.module(sema.db).krate().root_module(sema.db); @@ -504,8 +501,6 @@ fn has_test_function_or_multiple_test_submodules( match item { hir::ModuleDef::Function(f) => { if let Some(it) = f.source(sema.db) { - // #[test/bench] expands to just the item causing us to lose the attribute, so recover them by going out of the attribute - let it = it.node_with_attributes(sema.db); if test_related_attribute(&it.value).is_some() { return true; }