Auto merge of #13623 - jonas-schievink:strip-trait-item-completions, r=jonas-schievink
fix: Strip comments and attributes off of all trait item completions Previously, this was done in several places redundantly, but not for all items. It was also untested. This PR fixes that.
This commit is contained in:
commit
8292dd8026
@ -236,9 +236,7 @@ fn get_transformed_assoc_item(
|
|||||||
);
|
);
|
||||||
|
|
||||||
transform.apply(assoc_item.syntax());
|
transform.apply(assoc_item.syntax());
|
||||||
if let ast::AssocItem::Fn(func) = &assoc_item {
|
assoc_item.remove_attrs_and_docs();
|
||||||
func.remove_attrs_and_docs();
|
|
||||||
}
|
|
||||||
Some(assoc_item)
|
Some(assoc_item)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,7 +333,6 @@ fn add_const_impl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn make_const_compl_syntax(const_: &ast::Const, needs_whitespace: bool) -> String {
|
fn make_const_compl_syntax(const_: &ast::Const, needs_whitespace: bool) -> String {
|
||||||
const_.remove_attrs_and_docs();
|
|
||||||
let const_ = if needs_whitespace {
|
let const_ = if needs_whitespace {
|
||||||
insert_whitespace_into_node::insert_ws_into(const_.syntax().clone())
|
insert_whitespace_into_node::insert_ws_into(const_.syntax().clone())
|
||||||
} else {
|
} else {
|
||||||
@ -359,8 +356,6 @@ fn make_const_compl_syntax(const_: &ast::Const, needs_whitespace: bool) -> Strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn function_declaration(node: &ast::Fn, needs_whitespace: bool) -> String {
|
fn function_declaration(node: &ast::Fn, needs_whitespace: bool) -> String {
|
||||||
node.remove_attrs_and_docs();
|
|
||||||
|
|
||||||
let node = if needs_whitespace {
|
let node = if needs_whitespace {
|
||||||
insert_whitespace_into_node::insert_ws_into(node.syntax().clone())
|
insert_whitespace_into_node::insert_ws_into(node.syntax().clone())
|
||||||
} else {
|
} else {
|
||||||
@ -1209,6 +1204,81 @@ trait Tr<'b> {
|
|||||||
impl<'b> Tr<'b> for () {
|
impl<'b> Tr<'b> for () {
|
||||||
type Ty<'a: 'b, T: Copy, const C: usize> = $0;
|
type Ty<'a: 'b, T: Copy, const C: usize> = $0;
|
||||||
}
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn strips_comments() {
|
||||||
|
check_edit(
|
||||||
|
"fn func",
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
/// docs
|
||||||
|
#[attr]
|
||||||
|
fn func();
|
||||||
|
}
|
||||||
|
impl Tr for () {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
/// docs
|
||||||
|
#[attr]
|
||||||
|
fn func();
|
||||||
|
}
|
||||||
|
impl Tr for () {
|
||||||
|
fn func() {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
check_edit(
|
||||||
|
"const C",
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
/// docs
|
||||||
|
#[attr]
|
||||||
|
const C: usize;
|
||||||
|
}
|
||||||
|
impl Tr for () {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
/// docs
|
||||||
|
#[attr]
|
||||||
|
const C: usize;
|
||||||
|
}
|
||||||
|
impl Tr for () {
|
||||||
|
const C: usize = $0;
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
check_edit(
|
||||||
|
"type Item",
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
/// docs
|
||||||
|
#[attr]
|
||||||
|
type Item;
|
||||||
|
}
|
||||||
|
impl Tr for () {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
r#"
|
||||||
|
trait Tr {
|
||||||
|
/// docs
|
||||||
|
#[attr]
|
||||||
|
type Item;
|
||||||
|
}
|
||||||
|
impl Tr for () {
|
||||||
|
type Item = $0;
|
||||||
|
}
|
||||||
"#,
|
"#,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user