diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2014-09-16 01:28:36 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2014-09-16 22:11:27 +0530 |
commit | 12dc54d23849f6bc90667e2df432e30587e4af49 (patch) | |
tree | 6b3a8ba1d1bd343ec65108e7b5f67ff1a4154311 /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 13ae369dec3f02b5f992f1c6c276cde646ef39e9 (diff) | |
download | servo-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.py | 5 |
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 } |