From a9ffff92159645dc3e85f7c1d5bed9e3ae20eaa7 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 16 Apr 2014 21:37:58 +0200 Subject: [PATCH] Rewrite the interface unwrapping to return an expression. --- .../script/dom/bindings/codegen/CodegenRust.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index e8b723d4d98..0a77645874f 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -553,13 +553,13 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None, if type.nullable(): templateBody += ( "} else if (${val}).is_null_or_undefined() {\n" - " ${declName} = None;\n") + " None\n") templateBody += ( "} else {\n" + CGIndenter(onFailureNotAnObject(failureCode)).define() + "}") if type.nullable(): - templateBody = handleDefaultNull(templateBody, "${declName} = None;") + templateBody = handleDefaultNull(templateBody, "None") else: assert(defaultValue is None) @@ -609,11 +609,11 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None, if descriptor.interface.isCallback(): name = descriptor.nativeType declType = CGGeneric("Option<%s>" % name); - conversion = ("${declName} = Some(%s::new((${val}).to_object()));" % name) + conversion = ("Some(%s::new((${val}).to_object()))" % name) template = wrapObjectTemplate(conversion, isDefinitelyObject, type, failureCode) - return (template, declType, None, isOptional, None) + return ("${declName} = " + template + ";", declType, None, isOptional, None) templateBody = "" if descriptor.interface.isConsequential(): @@ -621,19 +621,17 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None, "argument" % descriptor.interface.identifier.name) - templateBody = "${declName} = " if failureCode is not None: - templateBody += str(CastableObjectUnwrapper( + templateBody = str(CastableObjectUnwrapper( descriptor, "(${val}).to_object()", failureCode, isOptional or type.nullable())) else: - templateBody += str(FailureFatalCastableObjectUnwrapper( + templateBody = str(FailureFatalCastableObjectUnwrapper( descriptor, "(${val}).to_object()", isOptional or type.nullable())) - templateBody += ";\n" templateBody = wrapObjectTemplate(templateBody, isDefinitelyObject, type, failureCode) @@ -642,7 +640,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None, if type.nullable() or isOptional: declType = CGWrapper(declType, pre="Option<", post=">") - return (templateBody, declType, None, isOptional, "None" if isOptional else None) + return ("${declName} = " + templateBody + ";", declType, None, isOptional, "None" if isOptional else None) if type.isSpiderMonkeyInterface(): raise TypeError("Can't handle SpiderMonkey interface arguments yet")