Factor out a Pair constructor for common parser use case

This commit is contained in:
David Tolnay 2020-12-21 15:42:31 -08:00
parent ddbcb524b9
commit 6a990f8035
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82

View File

@ -497,11 +497,7 @@ fn parse_extern_fn(
let throws = throws_tokens.is_some();
let unsafety = foreign_fn.sig.unsafety;
let fn_token = foreign_fn.sig.fn_token;
let name = Pair::new(
namespace,
cxx_name.unwrap_or(foreign_fn.sig.ident.clone()),
rust_name.unwrap_or(foreign_fn.sig.ident.clone()),
);
let name = pair(namespace, &foreign_fn.sig.ident, cxx_name, rust_name);
let generics = generics.clone();
let paren_token = foreign_fn.sig.paren_token;
let semi_token = foreign_fn.semi_token;
@ -1029,3 +1025,12 @@ fn parse_return_type(
ty => Ok(Some(ty)),
}
}
fn pair(namespace: Namespace, default: &Ident, cxx: Option<Ident>, rust: Option<Ident>) -> Pair {
let default = || default.clone();
Pair::new(
namespace,
cxx.unwrap_or_else(default),
rust.unwrap_or_else(default),
)
}