mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
Add a check_assist_* overload and move tests under assists
This commit is contained in:
parent
fc10fe44de
commit
9d5a97368a
@ -217,7 +217,9 @@ pub(crate) fn generate_delegate_methods(acc: &mut Assists, ctx: &AssistContext<'
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::tests::{check_assist, check_assist_not_applicable};
|
use crate::tests::{
|
||||||
|
check_assist, check_assist_not_applicable, check_assist_not_applicable_no_grouping,
|
||||||
|
};
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
@ -721,4 +723,21 @@ impl Person {
|
|||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn delegate_method_skipped_when_no_grouping() {
|
||||||
|
check_assist_not_applicable_no_grouping(
|
||||||
|
generate_delegate_methods,
|
||||||
|
r#"
|
||||||
|
struct Age(u8);
|
||||||
|
impl Age {
|
||||||
|
fn age(&self) -> u8 {
|
||||||
|
self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct Person {
|
||||||
|
ag$0e: Age,
|
||||||
|
}"#,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -792,7 +792,9 @@ fn qualified_path(qual_path_ty: ast::Path, path_expr_seg: ast::Path) -> ast::Pat
|
|||||||
mod test {
|
mod test {
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::tests::{check_assist, check_assist_not_applicable};
|
use crate::tests::{
|
||||||
|
check_assist, check_assist_not_applicable, check_assist_not_applicable_no_grouping,
|
||||||
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_tuple_struct_basic() {
|
fn test_tuple_struct_basic() {
|
||||||
@ -1840,4 +1842,33 @@ impl<D, T: C<A>> C<D> for B<T> {
|
|||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn delegate_trait_skipped_when_no_grouping() {
|
||||||
|
check_assist_not_applicable_no_grouping(
|
||||||
|
generate_delegate_trait,
|
||||||
|
r#"
|
||||||
|
trait SomeTrait {
|
||||||
|
type T;
|
||||||
|
fn fn_(arg: u32) -> u32;
|
||||||
|
fn method_(&mut self) -> bool;
|
||||||
|
}
|
||||||
|
struct A;
|
||||||
|
impl SomeTrait for A {
|
||||||
|
type T = u32;
|
||||||
|
|
||||||
|
fn fn_(arg: u32) -> u32 {
|
||||||
|
42
|
||||||
|
}
|
||||||
|
|
||||||
|
fn method_(&mut self) -> bool {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
struct B {
|
||||||
|
a$0 : A,
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -195,6 +195,20 @@ pub(crate) fn check_assist_not_applicable_for_import_one(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[track_caller]
|
||||||
|
pub(crate) fn check_assist_not_applicable_no_grouping(
|
||||||
|
assist: Handler,
|
||||||
|
#[rust_analyzer::rust_fixture] ra_fixture: &str,
|
||||||
|
) {
|
||||||
|
check_with_config(
|
||||||
|
TEST_CONFIG_NO_GROUPING,
|
||||||
|
assist,
|
||||||
|
ra_fixture,
|
||||||
|
ExpectedResult::NotApplicable,
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/// Check assist in unresolved state. Useful to check assists for lazy computation.
|
/// Check assist in unresolved state. Useful to check assists for lazy computation.
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub(crate) fn check_assist_unresolved(
|
pub(crate) fn check_assist_unresolved(
|
||||||
@ -368,41 +382,6 @@ fn labels(assists: &[Assist]) -> String {
|
|||||||
labels.into_iter().collect::<String>()
|
labels.into_iter().collect::<String>()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn long_groups_are_skipped_under_skip_resolve_strategy() {
|
|
||||||
let before = r#"
|
|
||||||
trait SomeTrait {
|
|
||||||
type T;
|
|
||||||
fn fn_(arg: u32) -> u32;
|
|
||||||
fn method_(&mut self) -> bool;
|
|
||||||
}
|
|
||||||
struct A;
|
|
||||||
impl SomeTrait for A {
|
|
||||||
type T = u32;
|
|
||||||
|
|
||||||
fn fn_(arg: u32) -> u32 {
|
|
||||||
42
|
|
||||||
}
|
|
||||||
|
|
||||||
fn method_(&mut self) -> bool {
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
struct B {
|
|
||||||
a$0 : A,
|
|
||||||
}
|
|
||||||
"#;
|
|
||||||
let (before_cursor_pos, before) = extract_offset(before);
|
|
||||||
let (db, file_id) = with_single_file(&before);
|
|
||||||
let frange = FileRange { file_id, range: TextRange::empty(before_cursor_pos) };
|
|
||||||
let res = assists(&db, &TEST_CONFIG, AssistResolveStrategy::None, frange.into());
|
|
||||||
assert!(res.iter().map(|a| &a.id).any(|a| { a.0 == "generate_delegate_trait" }));
|
|
||||||
|
|
||||||
let limited =
|
|
||||||
assists(&db, &TEST_CONFIG_NO_GROUPING, AssistResolveStrategy::None, frange.into());
|
|
||||||
assert!(!limited.iter().map(|a| &a.id).any(|a| { a.0 == "generate_delegate_trait" }));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn assist_order_field_struct() {
|
fn assist_order_field_struct() {
|
||||||
let before = "struct Foo { $0bar: u32 }";
|
let before = "struct Foo { $0bar: u32 }";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user