From 44aabbe64d5994e836cc80e4668d8d1c74103676 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sat, 15 Aug 2015 13:19:57 +0200 Subject: Support required dictionary members (fixes #7216) --- components/script/dom/bindings/codegen/CodegenRust.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'components/script/dom/bindings/codegen/CodegenRust.py') diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 31c3af4e6be..0aad0a2547b 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4800,7 +4800,7 @@ class CGDictionary(CGThing): def getMemberType(self, memberInfo): member, info = memberInfo declType = info.declType - if not member.defaultValue: + if member.optional and not member.defaultValue: declType = CGWrapper(info.declType, pre="Option<", post=">") return declType.define() @@ -4817,7 +4817,11 @@ class CGDictionary(CGThing): conversion = "%s.get()" % conversion assert (member.defaultValue is None) == (default is None) - if not default: + if not member.optional: + assert default is None + default = ("throw_type_error(cx, \"Missing required member \\\"%s\\\".\");\n" + "return Err(());") % member.identifier.name + elif not default: default = "None" conversion = "Some(%s)" % conversion -- cgit v1.2.3