aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2014-09-16 01:28:36 +0530
committerManish Goregaokar <manishsmail@gmail.com>2014-09-16 22:11:27 +0530
commit12dc54d23849f6bc90667e2df432e30587e4af49 (patch)
tree6b3a8ba1d1bd343ec65108e7b5f67ff1a4154311 /components/script/dom/bindings/codegen/CodegenRust.py
parent13ae369dec3f02b5f992f1c6c276cde646ef39e9 (diff)
downloadservo-12dc54d23849f6bc90667e2df432e30587e4af49.tar.gz
servo-12dc54d23849f6bc90667e2df432e30587e4af49.zip
Add unrooted_must_root lint for enums and structs containing JS<T>, as well as functions with JS<T> in their parameter list
For safe wrappers over JS<T> (eg Temporary<T>) use #[allow(unrooted_must_root)]. For all other types containing a #[must_root] value, annotate the type with #[must_root] to ensure that it is never used unrooted
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 1666589940e..4d0f8bdb682 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -2868,7 +2868,10 @@ class CGUnionStruct(CGThing):
enumConversions = [
" e%s(ref inner) => inner.to_jsval(cx)," % v["name"] for v in templateVars
]
- return ("""pub enum %s {
+ # XXXManishearth The following should be #[must_root],
+ # however we currently allow it till #2661 is fixed
+ return ("""#[allow(unrooted_must_root)]
+pub enum %s {
%s
}