aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py6
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