Don't use RootedReference for Option<T> in codegen anymore

This commit is contained in:
Anthony Ramine 2019-03-10 18:24:35 +01:00
parent 5fe5e5d6de
commit 1744a42dad
2 changed files with 4 additions and 16 deletions

View file

@ -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