aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-11-11 23:15:15 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-11-11 23:15:15 +0530
commit12f6ba29a74029fa8c83cc7274181d441e1e52dd (patch)
tree449ede9784e35351d4445e107854bf27f79afde4 /components/script/dom/bindings/codegen/CodegenRust.py
parent01ff78b438fe905b02735762d696408b4d073e90 (diff)
parente33330db4eb9d9187c98139aad732ff86ab9d828 (diff)
downloadservo-12f6ba29a74029fa8c83cc7274181d441e1e52dd.tar.gz
servo-12f6ba29a74029fa8c83cc7274181d441e1e52dd.zip
Auto merge of #8412 - ecoal95:webidl-sequence-return, r=jdm
Add WebIDL sequence return values And use it for `WebGLRenderingContext::getSupportedExtensions`. Part of #544 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8412) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 5ac6c455e39..260ef1e9006 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1295,7 +1295,12 @@ def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType.isObject() or returnType.isSpiderMonkeyInterface():
return CGGeneric("*mut JSObject")
if returnType.isSequence():
- raise TypeError("We don't support sequence return values")
+ inner = returnType.unroll()
+ result = getRetvalDeclarationForType(inner, descriptorProvider)
+ result = CGWrapper(result, pre="Vec<", post=">")
+ if returnType.nullable():
+ result = CGWrapper(result, pre="Option<", post=">")
+ return result
if returnType.isDictionary():
nullable = returnType.nullable()
dictName = returnType.inner.name if nullable else returnType.name