diff options
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 9c5e4864dab..3f15a316af3 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -7250,9 +7250,11 @@ def camel_to_upper_snake(s): def process_arg(expr, arg): if arg.type.isGeckoInterface() and not arg.type.unroll().inner.isCallback(): - if arg.variadic or arg.type.isSequence() or arg.type.nullable() and arg.optional: + if arg.variadic or arg.type.isSequence(): expr += ".r()" - elif arg.type.nullable() or arg.optional: + elif arg.type.nullable() and arg.optional and not arg.defaultValue: + expr += ".as_ref().map(Option::deref)" + elif arg.type.nullable() or arg.optional and not arg.defaultValue: expr += ".deref()" else: expr = "&" + expr |