diff options
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 8 |
1 files changed, 6 insertions, 2 deletions
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 |