fix: add test for missing case in bool_to_enum
This commit is contained in:
parent
a8d935eedc
commit
2034556f81
@ -405,14 +405,13 @@ fn find_record_expr_usage(
|
|||||||
let record_field = ast::RecordExprField::for_field_name(name_ref)?;
|
let record_field = ast::RecordExprField::for_field_name(name_ref)?;
|
||||||
let initializer = record_field.expr()?;
|
let initializer = record_field.expr()?;
|
||||||
|
|
||||||
if let Definition::Field(expected_field) = target_definition {
|
match target_definition {
|
||||||
if got_field != expected_field {
|
Definition::Field(expected_field) if got_field == expected_field => {
|
||||||
return None;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Some((record_field, initializer))
|
Some((record_field, initializer))
|
||||||
}
|
}
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn find_record_pat_field_usage(name: &ast::NameLike) -> Option<ast::Pat> {
|
fn find_record_pat_field_usage(name: &ast::NameLike) -> Option<ast::Pat> {
|
||||||
let record_pat_field = name.syntax().parent().and_then(ast::RecordPatField::cast)?;
|
let record_pat_field = name.syntax().parent().and_then(ast::RecordPatField::cast)?;
|
||||||
@ -800,6 +799,36 @@ fn main() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn local_var_init_struct_usage() {
|
||||||
|
check_assist(
|
||||||
|
bool_to_enum,
|
||||||
|
r#"
|
||||||
|
struct Foo {
|
||||||
|
foo: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let $0foo = true;
|
||||||
|
let s = Foo { foo };
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
r#"
|
||||||
|
struct Foo {
|
||||||
|
foo: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq, Eq)]
|
||||||
|
enum Bool { True, False }
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let foo = Bool::True;
|
||||||
|
let s = Foo { foo: foo == Bool::True };
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn field_struct_basic() {
|
fn field_struct_basic() {
|
||||||
cov_mark::check!(replaces_record_expr);
|
cov_mark::check!(replaces_record_expr);
|
||||||
|
Loading…
Reference in New Issue
Block a user