diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-03-20 23:17:46 +0100 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-03-20 23:17:46 +0100 |
commit | a4fc6961a8d29b85c30a0a55394ec9db8d3443ab (patch) | |
tree | 5e17385082393901bdf8dca8e291aac186df204b /src/components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 7bfb15ec624755ca3c87c5e19ab9c4762205c574 (diff) | |
download | servo-a4fc6961a8d29b85c30a0a55394ec9db8d3443ab.tar.gz servo-a4fc6961a8d29b85c30a0a55394ec9db8d3443ab.zip |
Remove support for non-castable arguments.
Diffstat (limited to 'src/components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 7dea1ed3d6f..6612e9c7486 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -93,7 +93,6 @@ class CastableObjectUnwrapper(): codeOnFailure is the code to run if unwrapping fails. """ def __init__(self, descriptor, source, target, codeOnFailure, isOptional=False): - assert descriptor.castable self.substitution = { "type" : descriptor.nativeType, "depth": descriptor.interface.inheritanceDepth(), "prototype": "PrototypeList::id::" + descriptor.name, @@ -383,7 +382,6 @@ class CGMethodCall(CGThing): class FakeCastableDescriptor(): def __init__(self, descriptor): - self.castable = True self.nativeType = "*%s" % descriptor.concreteType self.name = descriptor.name class FakeInterface: @@ -630,35 +628,23 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None, typePtr = descriptor.nativeType templateBody = "" - if descriptor.castable: - if descriptor.interface.isConsequential(): - raise TypeError("Consequential interface %s being used as an " - "argument but flagged as castable" % - descriptor.interface.identifier.name) - if failureCode is not None: - templateBody += str(CastableObjectUnwrapper( - descriptor, - "(${val}).to_object()", - "${declName}", - failureCode, - isOptional or type.nullable())) - else: - templateBody += str(FailureFatalCastableObjectUnwrapper( - descriptor, - "(${val}).to_object()", - "${declName}", - isOptional or type.nullable())) + if descriptor.interface.isConsequential(): + raise TypeError("Consequential interface %s being used as an " + "argument" % descriptor.interface.identifier.name) + + if failureCode is not None: + templateBody += str(CastableObjectUnwrapper( + descriptor, + "(${val}).to_object()", + "${declName}", + failureCode, + isOptional or type.nullable())) else: - templateBody += ( - "match unwrap_value::<" + typePtr + ">(&${val} as *JSVal, " - "PrototypeList::id::%s, %d) {\n" % (descriptor.name, descriptor.interface.inheritanceDepth() if descriptor.concrete else 0) + - " Err(()) => {") - templateBody += CGIndenter(onFailureBadType(failureCode, - descriptor.interface.identifier.name)).define() - templateBody += ( - " }\n" - " Ok(unwrapped) => ${declName} = Some(unwrapped)\n" - "}\n") + templateBody += str(FailureFatalCastableObjectUnwrapper( + descriptor, + "(${val}).to_object()", + "${declName}", + isOptional or type.nullable())) templateBody = wrapObjectTemplate(templateBody, isDefinitelyObject, type, failureCode) |