Fix "add missing impl members" assist for impls inside blocks
This commit is contained in:
parent
0063e89469
commit
e7a2d13ff6
@ -109,6 +109,7 @@ fn add_missing_impl_members_inner(
|
|||||||
|
|
||||||
if ctx.token_at_offset().all(|t| {
|
if ctx.token_at_offset().all(|t| {
|
||||||
t.parent_ancestors()
|
t.parent_ancestors()
|
||||||
|
.take_while(|node| node != impl_def.syntax())
|
||||||
.any(|s| ast::BlockExpr::can_cast(s.kind()) || ast::ParamList::can_cast(s.kind()))
|
.any(|s| ast::BlockExpr::can_cast(s.kind()) || ast::ParamList::can_cast(s.kind()))
|
||||||
}) {
|
}) {
|
||||||
return None;
|
return None;
|
||||||
@ -1486,4 +1487,35 @@ fn foo(&self) {}
|
|||||||
}"#,
|
}"#,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_works_inside_function() {
|
||||||
|
check_assist(
|
||||||
|
add_missing_impl_members,
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
fn method();
|
||||||
|
}
|
||||||
|
fn main() {
|
||||||
|
struct S;
|
||||||
|
impl Tr for S {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
fn method();
|
||||||
|
}
|
||||||
|
fn main() {
|
||||||
|
struct S;
|
||||||
|
impl Tr for S {
|
||||||
|
fn method() {
|
||||||
|
${0:todo!()}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user