diff options
author | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-03-09 00:14:14 +0900 |
---|---|---|
committer | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-03-20 23:41:59 +0900 |
commit | 0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d (patch) | |
tree | 25727b6e1595392fa6ea6b8e8e7eda70e4b8a662 /src/components/script/dom/bindings/codegen | |
parent | 19a7c429a1eea7b80cefb4b72138fafecc9b924a (diff) | |
download | servo-0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d.tar.gz servo-0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d.zip |
Split TCast::to into TCast::to_unchecked and TCast::to.
Diffstat (limited to 'src/components/script/dom/bindings/codegen')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 0a6b241a543..317d913265f 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -5791,9 +5791,16 @@ class GlobalGenRoots(): unsafe { derived.clone().transmute() } } - fn to<T: ${toBound}>(base: &JS<T>) -> JS<Self> { + fn to<T: ${toBound}>(base: &JS<T>) -> Option<JS<Self>> { + match base.get().${checkFn}() { + true => unsafe { Some(base.clone().transmute()) }, + false => None + } + } + + unsafe fn to_unchecked<T: ${toBound}>(base: &JS<T>) -> JS<Self> { assert!(base.get().${checkFn}()); - unsafe { base.clone().transmute() } + base.clone().transmute() } } ''').substitute({'checkFn': 'is_' + name.lower(), |