mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Support dictionary members without default values.
This commit is contained in:
parent
ebd9b9a519
commit
dea8a4ffcb
2 changed files with 26 additions and 22 deletions
|
@ -4119,7 +4119,9 @@ class CGDictionary(CGThing):
|
|||
return "/* uh oh */ %s" % name
|
||||
|
||||
def getMemberType(self, memberInfo):
|
||||
_, (_, _, declType, _) = memberInfo
|
||||
member, (_, _, declType, _) = memberInfo
|
||||
if not member.defaultValue:
|
||||
declType = CGWrapper(declType, pre="Option<", post=">")
|
||||
return declType.define()
|
||||
|
||||
def getMemberConversion(self, memberInfo):
|
||||
|
@ -4127,12 +4129,14 @@ class CGDictionary(CGThing):
|
|||
return CGIndenter(CGGeneric(s), 8).define()
|
||||
|
||||
member, (templateBody, default, declType, _) = memberInfo
|
||||
if not member.defaultValue:
|
||||
raise TypeError("We don't support dictionary members without a "
|
||||
"default value.")
|
||||
|
||||
replacements = { "val": "value" }
|
||||
conversion = string.Template(templateBody).substitute(replacements)
|
||||
|
||||
assert (member.defaultValue is None) == (default is None)
|
||||
if not default:
|
||||
default = "None"
|
||||
conversion = "Some(%s)" % conversion
|
||||
|
||||
conversion = (
|
||||
"match get_dictionary_property(cx, object, \"%s\") {\n"
|
||||
" Err(()) => return Err(()),\n"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue