Skip to content

Commit c6c1971

Browse files
committed
Add more checking
1 parent fddb6b2 commit c6c1971

38 files changed

+237
-303
lines changed

.github/workflows/main.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ jobs:
6262
- run: rustup update --no-self-update stable && rustup default stable
6363
- run: rustup target add wasm32-unknown-unknown
6464
- run: cargo clippy --no-deps --all-features -p wasm-bindgen-backend -- -D warnings
65+
- run: cargo clippy --no-deps --all-features -p wasm-bindgen -- -D warnings
6566
- run: cargo clippy --no-deps --all-features -p wasm-bindgen-cli -- -D warnings
6667
- run: cargo clippy --no-deps --all-features -p wasm-bindgen-cli-support -- -D warnings
6768
- run: cargo clippy --no-deps --all-features -p example-tests -- -D warnings
@@ -89,8 +90,8 @@ jobs:
8990
- uses: actions/checkout@v4
9091
- run: rustup update --no-self-update stable && rustup default stable
9192
- run: rustup target add wasm32-unknown-unknown
92-
- run: cargo clippy --no-deps --all-features --target wasm32-unknown-unknown -p js-sys -- -D warnings
93-
- run: cargo clippy --no-deps --all-features --target wasm32-unknown-unknown -p web-sys -- -D warnings
93+
- run: cargo clippy --no-deps --all-features --target wasm32-unknown-unknown -p js-sys --all-targets -- -D warnings
94+
- run: cargo clippy --no-deps --all-features --target wasm32-unknown-unknown -p web-sys --all-targets -- -D warnings
9495

9596
# Run `cargo clippy` over crates that support `no_std`
9697
clippy_no_std:

crates/cli-support/src/lib.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -812,13 +812,3 @@ where
812812
pairs.sort_by_key(|(k, _)| *k);
813813
pairs.into_iter()
814814
}
815-
816-
/// Like `sorted_iter`, but produces mutable references to the values
817-
fn sorted_iter_mut<K, V>(map: &mut HashMap<K, V>) -> impl Iterator<Item = (&K, &mut V)>
818-
where
819-
K: Ord,
820-
{
821-
let mut pairs = map.iter_mut().collect::<Vec<_>>();
822-
pairs.sort_by_key(|(k, _)| *k);
823-
pairs.into_iter()
824-
}

crates/js-sys/tests/wasm/Array.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ macro_rules! js_array {
1313

1414
macro_rules! array {
1515
($($e:expr),*) => ({
16-
let mut __x = Vec::new();
17-
$(__x.push(JsValue::from($e));)*
18-
__x
16+
vec![$(JsValue::from($e)),*]
1917
})
2018
}
2119

@@ -38,7 +36,7 @@ fn from_iter() {
3836

3937
assert_eq!(
4038
to_rust(
41-
&vec![JsValue::from("a"), JsValue::from("b"), JsValue::from("c"),]
39+
&[JsValue::from("a"), JsValue::from("b"), JsValue::from("c")]
4240
.iter()
4341
.collect()
4442
),
@@ -53,7 +51,7 @@ fn from_iter() {
5351
);
5452

5553
assert_eq!(
56-
to_rust(&vec![array.clone(),].iter().collect()),
54+
to_rust(&[array.clone()].iter().collect()),
5755
vec![JsValue::from(array)],
5856
);
5957

@@ -74,7 +72,7 @@ fn from_iter() {
7472
let v = vec!["a", "b", "c"];
7573

7674
assert_eq!(
77-
to_rust(&Array::from_iter(v.into_iter().map(|s| JsValue::from(s)))),
75+
to_rust(&Array::from_iter(v.into_iter().map(JsValue::from))),
7876
vec!["a", "b", "c"],
7977
);
8078
}
@@ -290,6 +288,7 @@ fn sort() {
290288
}
291289

292290
#[wasm_bindgen_test]
291+
#[allow(clippy::cmp_owned)]
293292
fn some() {
294293
let array = js_array!["z", 1, "y", 2];
295294
assert!(array.some(&mut |e| e == JsValue::from(2)));
@@ -553,7 +552,7 @@ fn find_last_index() {
553552
fn to_locale_string() {
554553
let output = js_array![1, "a", Date::new(&"21 Dec 1997 14:12:00 UTC".into())]
555554
.to_locale_string(&"en".into(), &JsValue::undefined());
556-
assert!(String::from(output).len() > 0);
555+
assert!(!String::from(output).is_empty());
557556
}
558557

559558
#[wasm_bindgen_test]
@@ -567,7 +566,7 @@ fn for_each() {
567566
res
568567
}
569568

570-
assert_eq!(sum_indices_of_evens(&js_array![2, 4, 6, 8]), 0 + 1 + 2 + 3);
569+
assert_eq!(sum_indices_of_evens(&js_array![2, 4, 6, 8]), 1 + 2 + 3);
571570
assert_eq!(sum_indices_of_evens(&js_array![1, 3, 5, 7]), 0);
572571
assert_eq!(sum_indices_of_evens(&js_array![3, 5, 7, 10]), 3);
573572
}
@@ -578,7 +577,7 @@ fn set_length() {
578577
array.set_length(3);
579578
assert_eq!(
580579
array.iter().collect::<Vec<_>>(),
581-
[1.0, 2.0, 3.0].map(|x| JsValue::from_f64(x))
580+
[1.0, 2.0, 3.0].map(JsValue::from_f64)
582581
);
583582

584583
array.set_length(7);
@@ -587,7 +586,7 @@ fn set_length() {
587586
[1.0, 2.0, 3.0]
588587
.iter()
589588
.copied()
590-
.map(|x| JsValue::from_f64(x))
589+
.map(JsValue::from_f64)
591590
.chain([JsValue::UNDEFINED; 4])
592591
.collect::<Vec<_>>()
593592
);
@@ -620,8 +619,7 @@ fn test_array_view_mut_raw<ElemT: std::cmp::PartialEq + std::fmt::Debug, ArrT>(
620619
let start: u8 = 10;
621620
let len: usize = 32;
622621
let end: u8 = start + len as u8;
623-
let mut buffer: Vec<ElemT> = Vec::new();
624-
buffer.reserve(len);
622+
let mut buffer: Vec<ElemT> = Vec::with_capacity(len);
625623
unsafe {
626624
let array: ArrT = sut(buffer.as_mut_ptr(), len);
627625
populate_array(

crates/js-sys/tests/wasm/Boolean.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ use wasm_bindgen_test::*;
66
#[allow(deprecated)]
77
#[wasm_bindgen_test]
88
fn new_undefined() {
9-
assert_eq!(Boolean::new(&JsValue::undefined()).value_of(), false);
9+
assert!(!Boolean::new(&JsValue::undefined()).value_of());
1010
}
1111

1212
#[allow(deprecated)]
1313
#[wasm_bindgen_test]
1414
fn new_truly() {
15-
assert_eq!(Boolean::new(&JsValue::from("foo")).value_of(), true);
15+
assert!(Boolean::new(&JsValue::from("foo")).value_of());
1616
}
1717

1818
#[allow(deprecated)]

crates/js-sys/tests/wasm/Intl.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,15 @@ fn relative_time_format() {
118118
let opts = Object::new();
119119

120120
let c = Intl::RelativeTimeFormat::new(&locales, &opts);
121-
assert!(c.format(1_f64.into(), &"seconds").is_string());
121+
assert!(c.format(1_f64, "seconds").is_string());
122122
assert!(c
123-
.format_to_parts(1_f64.into(), &"seconds")
123+
.format_to_parts(1_f64, "seconds")
124124
.is_instance_of::<Array>());
125125
assert!(c.resolved_options().is_instance_of::<Object>());
126126

127-
assert_eq!(c.format(1_f64.into(), &"seconds"), "in 1 second");
128-
assert_eq!(c.format(1.5.into(), &"seconds"), "in 1.5 seconds");
129-
assert_eq!(c.format((-1.5).into(), &"seconds"), "1.5 seconds ago");
127+
assert_eq!(c.format(1_f64, "seconds"), "in 1 second");
128+
assert_eq!(c.format(1.5, "seconds"), "in 1.5 seconds");
129+
assert_eq!(c.format(-1.5, "seconds"), "1.5 seconds ago");
130130

131131
let a = Intl::RelativeTimeFormat::supported_locales_of(&locales, &opts);
132132
assert!(a.is_instance_of::<Array>());

crates/js-sys/tests/wasm/JsString.rs

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![cfg(test)]
2+
13
use js_sys::*;
24
use wasm_bindgen::prelude::*;
35
use wasm_bindgen_test::*;
@@ -69,9 +71,9 @@ fn ends_with() {
6971
let js = JsString::from(s);
7072

7173
// TODO: remove third parameter once we have optional parameters
72-
assert_eq!(js.ends_with("question.", s.len() as i32), true);
73-
assert_eq!(js.ends_with("to be", s.len() as i32), false);
74-
assert_eq!(js.ends_with("to be", 19), true);
74+
assert!(js.ends_with("question.", s.len() as i32));
75+
assert!(!js.ends_with("to be", s.len() as i32));
76+
assert!(js.ends_with("to be", 19));
7577
}
7678

7779
#[wasm_bindgen_test]
@@ -93,7 +95,7 @@ fn from_char_code() {
9395
let codes_u16: Vec<u16> = codes
9496
.into_iter()
9597
.map(|code| {
96-
assert!(code <= u32::from(u16::max_value()));
98+
assert!(code <= u32::from(u16::MAX));
9799
code as u16
98100
})
99101
.collect();
@@ -121,23 +123,23 @@ fn from_code_point() {
121123
);
122124
assert_eq!(JsString::from_code_point(&codes).unwrap(), "☃★♲你");
123125

124-
assert!(!JsString::from_code_point1(0x10FFFF).is_err());
126+
assert!(JsString::from_code_point1(0x10FFFF).is_ok());
125127
assert!(JsString::from_code_point1(0x110000).is_err());
126-
assert!(JsString::from_code_point1(u32::max_value()).is_err());
128+
assert!(JsString::from_code_point1(u32::MAX).is_err());
127129
}
128130

129131
#[wasm_bindgen_test]
130132
fn includes() {
131133
let str = JsString::from("Blue Whale");
132134

133135
// TODO: remove second parameter once we have optional parameters
134-
assert_eq!(str.includes("Blue", 0), true);
135-
assert_eq!(str.includes("Blute", 0), false);
136-
assert_eq!(str.includes("Whale", 0), true);
137-
assert_eq!(str.includes("Whale", 5), true);
138-
assert_eq!(str.includes("Whale", 7), false);
139-
assert_eq!(str.includes("", 0), true);
140-
assert_eq!(str.includes("", 16), true);
136+
assert!(str.includes("Blue", 0));
137+
assert!(!str.includes("Blute", 0));
138+
assert!(str.includes("Whale", 0));
139+
assert!(str.includes("Whale", 5));
140+
assert!(!str.includes("Whale", 7));
141+
assert!(str.includes("", 0));
142+
assert!(str.includes("", 16));
141143
}
142144

143145
#[wasm_bindgen_test]
@@ -225,12 +227,12 @@ fn match_all() {
225227
.unwrap();
226228

227229
let obj = &result[0];
228-
assert_eq!(Reflect::get(obj.as_ref(), &"0".into()).unwrap(), "The");
229-
assert_eq!(Reflect::get(obj.as_ref(), &"1".into()).unwrap(), "he");
230+
assert_eq!(Reflect::get(obj, &"0".into()).unwrap(), "The");
231+
assert_eq!(Reflect::get(obj, &"1".into()).unwrap(), "he");
230232

231233
let obj = &result[1];
232-
assert_eq!(Reflect::get(obj.as_ref(), &"0".into()).unwrap(), "It");
233-
assert_eq!(Reflect::get(obj.as_ref(), &"1".into()).unwrap(), "t");
234+
assert_eq!(Reflect::get(obj, &"0".into()).unwrap(), "It");
235+
assert_eq!(Reflect::get(obj, &"1".into()).unwrap(), "t");
234236

235237
let result: Vec<_> = JsString::from("foo")
236238
.match_all(&re)
@@ -249,29 +251,20 @@ fn match_all() {
249251

250252
let obj = &result[0];
251253
assert_eq!(
252-
Reflect::get(obj.as_ref(), &"0".into()).unwrap(),
254+
Reflect::get(obj, &"0".into()).unwrap(),
253255
"see Chapter 3.4.5.1"
254256
);
255-
assert_eq!(
256-
Reflect::get(obj.as_ref(), &"1".into()).unwrap(),
257-
"Chapter 3.4.5.1"
258-
);
259-
assert_eq!(Reflect::get(obj.as_ref(), &"2".into()).unwrap(), ".1");
260-
assert_eq!(Reflect::get(obj.as_ref(), &"index".into()).unwrap(), 22);
261-
assert_eq!(Reflect::get(obj.as_ref(), &"input".into()).unwrap(), s);
257+
assert_eq!(Reflect::get(obj, &"1".into()).unwrap(), "Chapter 3.4.5.1");
258+
assert_eq!(Reflect::get(obj, &"2".into()).unwrap(), ".1");
259+
assert_eq!(Reflect::get(obj, &"index".into()).unwrap(), 22);
260+
assert_eq!(Reflect::get(obj, &"input".into()).unwrap(), s);
262261

263262
let obj = &result[1];
264-
assert_eq!(
265-
Reflect::get(obj.as_ref(), &"0".into()).unwrap(),
266-
"see Chapter 3.1.4"
267-
);
268-
assert_eq!(
269-
Reflect::get(obj.as_ref(), &"1".into()).unwrap(),
270-
"Chapter 3.1.4"
271-
);
272-
assert_eq!(Reflect::get(obj.as_ref(), &"2".into()).unwrap(), ".4");
273-
assert_eq!(Reflect::get(obj.as_ref(), &"index".into()).unwrap(), 48);
274-
assert_eq!(Reflect::get(obj.as_ref(), &"input".into()).unwrap(), s);
263+
assert_eq!(Reflect::get(obj, &"0".into()).unwrap(), "see Chapter 3.1.4");
264+
assert_eq!(Reflect::get(obj, &"1".into()).unwrap(), "Chapter 3.1.4");
265+
assert_eq!(Reflect::get(obj, &"2".into()).unwrap(), ".4");
266+
assert_eq!(Reflect::get(obj, &"index".into()).unwrap(), 48);
267+
assert_eq!(Reflect::get(obj, &"input".into()).unwrap(), s);
275268
}
276269

277270
#[wasm_bindgen_test]
@@ -512,17 +505,17 @@ fn to_locale_lower_case() {
512505
let js = JsString::from("Mozilla");
513506
assert_eq!(js.to_locale_lower_case(None), "mozilla");
514507
let s = JsString::from("\u{0130}");
515-
assert_eq!(s.to_locale_lower_case(Some("tr".into())), "i");
516-
assert_ne!(s.to_locale_lower_case(Some("en-US".into())), "i");
508+
assert_eq!(s.to_locale_lower_case(Some("tr")), "i");
509+
assert_ne!(s.to_locale_lower_case(Some("en-US")), "i");
517510
}
518511

519512
#[wasm_bindgen_test]
520513
fn to_locale_upper_case() {
521514
let js = JsString::from("mozilla");
522515
assert_eq!(js.to_locale_upper_case(None), "MOZILLA");
523516
let s = JsString::from("i\u{0307}");
524-
assert_eq!(s.to_locale_upper_case(Some("lt".into())), "I");
525-
assert_ne!(s.to_locale_upper_case(Some("en-US".into())), "I");
517+
assert_eq!(s.to_locale_upper_case(Some("lt")), "I");
518+
assert_ne!(s.to_locale_upper_case(Some("en-US")), "I");
526519
}
527520

528521
#[wasm_bindgen_test]
@@ -573,7 +566,7 @@ fn value_of() {
573566
fn raw() {
574567
let call_site = Object::new();
575568
let raw = Array::of3(&"foo".into(), &"bar".into(), &"123".into());
576-
Reflect::set(&call_site.as_ref(), &"raw".into(), &raw.into()).unwrap();
569+
Reflect::set(call_site.as_ref(), &"raw".into(), &raw.into()).unwrap();
577570
assert_eq!(
578571
JsString::raw_2(&call_site, "5", "JavaScript").unwrap(),
579572
"foo5barJavaScript123"

crates/js-sys/tests/wasm/Map.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ fn delete() {
1919
let map = Map::new();
2020
map.set(&"foo".into(), &"bar".into());
2121
assert_eq!(map.size(), 1);
22-
assert_eq!(map.delete(&"foo".into()), true);
23-
assert_eq!(map.delete(&"bar".into()), false);
22+
assert!(map.delete(&"foo".into()));
23+
assert!(!map.delete(&"bar".into()));
2424
assert_eq!(map.size(), 0);
2525
}
2626

@@ -63,8 +63,8 @@ fn get() {
6363
fn has() {
6464
let map = Map::new();
6565
map.set(&"foo".into(), &"bar".into());
66-
assert_eq!(map.has(&"foo".into()), true);
67-
assert_eq!(map.has(&"bar".into()), false);
66+
assert!(map.has(&"foo".into()));
67+
assert!(!map.has(&"bar".into()));
6868
}
6969

7070
#[wasm_bindgen_test]
@@ -76,8 +76,8 @@ fn new() {
7676
fn set() {
7777
let map = Map::new();
7878
let new = map.set(&"foo".into(), &"bar".into());
79-
assert_eq!(map.has(&"foo".into()), true);
80-
assert_eq!(new.has(&"foo".into()), true);
79+
assert!(map.has(&"foo".into()));
80+
assert!(new.has(&"foo".into()));
8181
}
8282

8383
#[wasm_bindgen_test]

crates/js-sys/tests/wasm/MapIterator.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fn entries() {
99
let entries = map.entries();
1010

1111
let next = entries.next().unwrap();
12-
assert_eq!(next.done(), false);
12+
assert!(!next.done());
1313
assert!(next.value().is_object());
1414
assert_eq!(Reflect::get(&next.value(), &0.into()).unwrap(), "uno");
1515
assert_eq!(Reflect::get(&next.value(), &1.into()).unwrap(), 1);
@@ -27,7 +27,7 @@ fn keys() {
2727
let keys = map.keys();
2828

2929
let next = keys.next().unwrap();
30-
assert_eq!(next.done(), false);
30+
assert!(!next.done());
3131
assert_eq!(next.value(), "uno");
3232

3333
let next = keys.next().unwrap();
@@ -43,7 +43,7 @@ fn values() {
4343
let values = map.values();
4444

4545
let next = values.next().unwrap();
46-
assert_eq!(next.done(), false);
46+
assert!(!next.done());
4747
assert_eq!(next.value(), 1);
4848

4949
let next = values.next().unwrap();

0 commit comments

Comments
 (0)