diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2019-03-10 18:24:35 +0100 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2019-03-10 18:24:35 +0100 |
commit | 1744a42dad62a4051ab56f109393850c8aafe961 (patch) | |
tree | e217d816f5e558c0618e85b189e5d51d95e34803 /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 5fe5e5d6debef5adf234b650ee1b758e683a5230 (diff) | |
download | servo-1744a42dad62a4051ab56f109393850c8aafe961.tar.gz servo-1744a42dad62a4051ab56f109393850c8aafe961.zip |
Don't use RootedReference for Option<T> in codegen anymore
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 |