Use the try macro to initialize dictionaries.

This commit is contained in:
Ms2ger 2015-02-20 10:39:40 +01:00
parent 49ff6b2ccc
commit 81eab460b1

View file

@ -4365,10 +4365,8 @@ class CGDictionary(CGThing):
def impl(self): def impl(self):
d = self.dictionary d = self.dictionary
if d.parent: if d.parent:
initParent = ("parent: match %s::%s::new(cx, val) {\n" initParent = "parent: try!(%s::%s::new(cx, val)),\n" % (
" Ok(parent) => parent,\n" self.makeModuleName(d.parent),
" Err(_) => return Err(()),\n"
"},\n") % (self.makeModuleName(d.parent),
self.makeClassName(d.parent)) self.makeClassName(d.parent))
else: else:
initParent = "" initParent = ""
@ -4441,12 +4439,11 @@ class CGDictionary(CGThing):
conversion = "Some(%s)" % conversion conversion = "Some(%s)" % conversion
conversion = ( conversion = (
"match get_dictionary_property(cx, object, \"%s\") {\n" "match try!(get_dictionary_property(cx, object, \"%s\")) {\n"
" Err(()) => return Err(()),\n" " Some(value) => {\n"
" Ok(Some(value)) => {\n"
"%s\n" "%s\n"
" },\n" " },\n"
" Ok(None) => {\n" " None => {\n"
"%s\n" "%s\n"
" },\n" " },\n"
"}") % (member.identifier.name, indent(conversion), indent(default)) "}") % (member.identifier.name, indent(conversion), indent(default))