mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-25 11:17:13 +00:00
Merge pull request #20686 from A4-Tacks/gen-default-not-apply-selected
Fix selected applicable generate_default_from_enum_variant
This commit is contained in:
commit
da47c3da45
@ -39,6 +39,9 @@ pub(crate) fn generate_default_from_enum_variant(
|
||||
cov_mark::hit!(test_gen_default_on_non_unit_variant_not_implemented);
|
||||
return None;
|
||||
}
|
||||
if !variant.syntax().text_range().contains_range(ctx.selection_trimmed()) {
|
||||
return None;
|
||||
}
|
||||
|
||||
if existing_default_impl(&ctx.sema, &variant).is_some() {
|
||||
cov_mark::hit!(test_gen_default_impl_already_exists);
|
||||
@ -114,6 +117,49 @@ impl Default for Variant {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_default_selected_variant() {
|
||||
check_assist(
|
||||
generate_default_from_enum_variant,
|
||||
r#"
|
||||
//- minicore: default
|
||||
enum Variant {
|
||||
Undefined,
|
||||
$0Minor$0,
|
||||
Major,
|
||||
}
|
||||
"#,
|
||||
r#"
|
||||
enum Variant {
|
||||
Undefined,
|
||||
Minor,
|
||||
Major,
|
||||
}
|
||||
|
||||
impl Default for Variant {
|
||||
fn default() -> Self {
|
||||
Self::Minor
|
||||
}
|
||||
}
|
||||
"#,
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_default_not_applicable_with_multiple_variant_selection() {
|
||||
check_assist_not_applicable(
|
||||
generate_default_from_enum_variant,
|
||||
r#"
|
||||
//- minicore: default
|
||||
enum Variant {
|
||||
Undefined,
|
||||
$0Minor,
|
||||
M$0ajor,
|
||||
}
|
||||
"#,
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_default_already_implemented() {
|
||||
cov_mark::check!(test_gen_default_impl_already_exists);
|
||||
|
Loading…
x
Reference in New Issue
Block a user