ast::Item::ExternBlock(ast) => self.lower_extern_block(ast).into(),
};
- self.add_attrs(item.into(), attrs.clone());
+ self.add_attrs(item.into(), attrs);
Some(item)
}
let item = ctx.find_node_at_offset::<ast::Item>()?;
let insert = match_ast! {
match (item.syntax().parent()?) {
- ast::AssocItemList(it) => it.syntax().parent()?.clone(),
+ ast::AssocItemList(it) => it.syntax().parent()?,
_ => item.syntax().clone(),
}
};
None => return,
};
- if let Some(segment) = ast::PathSegment::cast(parent.clone()) {
+ if let Some(segment) = ast::PathSegment::cast(parent) {
let path = segment.parent_path();
self.is_call = path
.syntax()
// Some ill behaved macro try to use stdout for debugging
// We ignore it here
- if !buf.starts_with("{") {
+ if !buf.starts_with('{') {
log::error!("proc-macro tried to print : {}", buf);
continue;
}
.into());
}
- let frange = from_proto::file_range(&snap, text_document.clone(), range)?;
+ let frange = from_proto::file_range(&snap, text_document, range)?;
let start_line = line_index.index.line_col(frange.range.start()).line;
let end_line = line_index.index.line_col(frange.range.end()).line;