Add lint check for &DomRoot<T>

`&DomRoot<T> is strictly less expressive than `&T`, so using it is
pointless.
This commit is contained in:
lberrymage 2019-12-21 12:44:34 -09:00
parent bac9903fbe
commit cd9195056c
9 changed files with 13 additions and 13 deletions

View file

@ -623,6 +623,7 @@ def check_rust(file_name, lines):
(r"DomRefCell<Heap<.+>>", "Banned type DomRefCell<Heap<T>> detected. Use MutDom<T> instead", no_filter),
# No benefit to using &Root<T>
(r": &Root<", "use &T instead of &Root<T>", no_filter),
(r": &DomRoot<", "use &T instead of &DomRoot<T>", no_filter),
(r"^&&", "operators should go at the end of the first line", no_filter),
# This particular pattern is not reentrant-safe in script_thread.rs
(r"match self.documents.borrow", "use a separate variable for the match expression",

View file

@ -38,7 +38,7 @@ impl test {
}
}
fn test_fun2(y : &String, z : &Vec<f32>, r: &Root<isize>) -> () {
fn test_fun2(y : &String, z : &Vec<f32>, r: &Root<isize>, s: &DomRoot<isize>) -> () {
let x = true;
x
&& x;

View file

@ -112,6 +112,7 @@ class CheckTidiness(unittest.TestCase):
self.assertEqual('use &[T] instead of &Vec<T>', next(errors)[2])
self.assertEqual('use &str instead of &String', next(errors)[2])
self.assertEqual('use &T instead of &Root<T>', next(errors)[2])
self.assertEqual('use &T instead of &DomRoot<T>', next(errors)[2])
self.assertEqual('encountered function signature with -> ()', next(errors)[2])
self.assertEqual('operators should go at the end of the first line', next(errors)[2])
self.assertNoMoreErrors(errors)