aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-03-20 23:17:46 +0100
committerMs2ger <ms2ger@gmail.com>2014-03-20 23:17:46 +0100
commita4fc6961a8d29b85c30a0a55394ec9db8d3443ab (patch)
tree5e17385082393901bdf8dca8e291aac186df204b /src/components/script/dom/bindings/codegen/CodegenRust.py
parent7bfb15ec624755ca3c87c5e19ab9c4762205c574 (diff)
downloadservo-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.py46
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)