+ fn fn_sig(&self) -> Option<&'hir FnSig> {
+ match &self.node {
+ Node::Item(item) => {
+ match &item.kind {
+ ItemKind::Fn(sig, _, _) => Some(sig),
+ _ => None,
+ }
+ }
+
+ Node::TraitItem(item) => {
+ match &item.kind {
+ TraitItemKind::Method(sig, _) => Some(sig),
+ _ => None
+ }
+ }
+
+ Node::ImplItem(item) => {
+ match &item.kind {
+ ImplItemKind::Method(sig, _) => Some(sig),
+ _ => None,
+ }
+ }
+
+ _ => None,
+ }
+ }
+