Deindent a few helper functions in dictionaries

No need for it to be an inner function now that it's using methods!
This commit is contained in:
Alex Crichton
2018-08-29 10:40:17 -07:00
parent 4f76a00024
commit 6cf3b90e63

View File

@ -191,7 +191,7 @@ impl<'src> FirstPassRecord<'src> {
None => return, None => return,
}; };
let mut fields = Vec::new(); let mut fields = Vec::new();
if !push_members(self, def.identifier.0, &mut fields) { if !self.append_dictionary_members(def.identifier.0, &mut fields) {
return return
} }
@ -199,20 +199,21 @@ impl<'src> FirstPassRecord<'src> {
name: rust_ident(&camel_case_ident(def.identifier.0)), name: rust_ident(&camel_case_ident(def.identifier.0)),
fields, fields,
}); });
}
fn push_members<'src>( fn append_dictionary_members(
data: &FirstPassRecord<'src>, &self,
dict: &'src str, dict: &'src str,
dst: &mut Vec<ast::DictionaryField>, dst: &mut Vec<ast::DictionaryField>,
) -> bool { ) -> bool {
let dict_data = &data.dictionaries[&dict]; let dict_data = &self.dictionaries[&dict];
let definition = dict_data.definition.unwrap(); let definition = dict_data.definition.unwrap();
// > The order of the dictionary members on a given dictionary is // > The order of the dictionary members on a given dictionary is
// > such that inherited dictionary members are ordered before // > such that inherited dictionary members are ordered before
// > non-inherited members ... // > non-inherited members ...
if let Some(parent) = &definition.inheritance { if let Some(parent) = &definition.inheritance {
if !push_members(data, parent.identifier.0, dst) { if !self.append_dictionary_members(parent.identifier.0, dst) {
return false return false
} }
} }
@ -225,7 +226,7 @@ impl<'src> FirstPassRecord<'src> {
let members = definition.members.body.iter(); let members = definition.members.body.iter();
let partials = dict_data.partials.iter().flat_map(|d| &d.members.body); let partials = dict_data.partials.iter().flat_map(|d| &d.members.body);
for member in members.chain(partials) { for member in members.chain(partials) {
match mkfield(data, member) { match self.dictionary_field(member) {
Some(f) => dst.push(f), Some(f) => dst.push(f),
None => { None => {
warn!( warn!(
@ -251,12 +252,12 @@ impl<'src> FirstPassRecord<'src> {
return true return true
} }
fn mkfield<'src>( fn dictionary_field(
data: &FirstPassRecord<'src>, &self,
field: &'src DictionaryMember<'src>, field: &'src DictionaryMember<'src>,
) -> Option<ast::DictionaryField> { ) -> Option<ast::DictionaryField> {
// use argument position now as we're just binding setters // use argument position now as we're just binding setters
let ty = field.type_.to_idl_type(data)?.to_syn_type(TypePosition::Argument)?; let ty = field.type_.to_idl_type(self)?.to_syn_type(TypePosition::Argument)?;
// Slice types aren't supported because they don't implement // Slice types aren't supported because they don't implement
// `Into<JsValue>` // `Into<JsValue>`
@ -283,7 +284,6 @@ impl<'src> FirstPassRecord<'src> {
ty, ty,
}) })
} }
}
fn append_ns( fn append_ns(
&'src self, &'src self,